PushSharp & Http2

最近由於Apple Push Service憑證過期,重新申請憑證時,發現Apple Push Notification(簡稱APN)失效了。

於是在Apple Store下載一些APNs 測試App來測試推播,都無法接收到訊息。
後來在網路上找到一個C#測試工具-PushSharp GitHub,卻發現之前的憑證都可以正常執行。

但是使用後來申請的憑證,程式都執行不下去,且都沒接收到APN Server所傳來的Response。


Escaping 跳脫符號

範例中,使用兩層的closure,將closure作為callback function,當完成事件時,需要透過callback function將執行結果傳遞至畫面上呈現.

使用時遇到了以下的錯誤訊息.
“Escaping closure captures non-escaping parmeter”


Alamofire SessionDeinitialized & TLS Trust

在使用Alamofire library進行Https連接時,遇到了default TLS Trust evaluation failed 這個錯誤.

基本上看起來是無法取得憑證所導致的錯誤,但網站端所請求的並不是合法的憑證.

因此我們必須先透過ServerTrustManager來繞過憑證的驗證.


Can't find type xxx in scope

在程式中,常常會愈遇到 Can’t find type ‘XXX’ in scope 的錯誤,發生原因通常是

  • 拼字錯誤或大小寫不一致
  • 型態宣告不對
  • 未加入complie source中


Error Type '()' cannot conform to 'View'

在佈局畫面時,遇到

Type ‘()’ cannot conform to ‘View’; only struct/enum/class types can conform to protocols

的錯誤訊息.


SwiftUI 物件階層

設計App時,除了空件的位置之外,階層也是很重要的一環,它將決定A元件覆蓋B元件,還是被B元件所覆蓋.

在SwiftUI中主要有ZStack, Overlay 和 Background三種技術可以調整階層.


SwiftUI 背景如何渲染於Status Bar底下

在 WWDC 2019 大會上,Apple 發佈了全新的框架SwiftUI,讓你用更少的程式碼來設計及開發iOS App.

以往Swift的底層依舊是Object C,而SwiftUI已將底層全面換成Swift語法.

Swift: UIKit通常需要搭配storyboards一起使用,而SwitfUI完全使用程式碼來建構,並且可搭配Automatic Preview來即時預覽畫面.

設計App時,通常會設定自己的背景圖片,接下來我們來看如何設定


iOS 輸入框-提示文字

在 iOS 6+ 以上,針對輸入框提供了attributedPlaceholder來設置提示文字的顏色.


iOS - UIButton 將 icon 設置在右邊

當我們建立一個按鈕時, 可以同時設置好icon和文字.

注意文字顏色, 預設為白色, 在畫面中會看不到

但是預設的icon是在文字的左邊, 當我們想移動到右邊時, 可調整 Edge 為 image

再選擇right調整位置到右邊

若想調整文字位置時, 可調整Edge 為title

再調整位置即可