Swift Objective-C 相容性

史丹佛 Swift iOS 開發筆九:Objective C 相容性 與 Property List

Swift 與 Objective C 的 API 是完全相容的,基本上不會察覺有什麼不同的地方,所以可以在 Swift 中放心使用 Objective C 的 API 。

NSString 過渡為 String。

NSArray 過渡為 Array<AnyObject>。

NSDictionary 過渡為 Dictionary<NSObject, AnyObject>。

Int, Float, Double, Bool 過渡為 NSNumber。要從NSNumber取回相應的值要用 DoubleValue, IntValue 等。

透過型別轉換 (Casting) 可使用對方的方法:

Property List

Property List 是一個 AnyObject ,它只可能由以下幾種型別組:NSString, NSArray, NSDictionary, NSNumber, NSData, NSDate

例如,一個 NSDictionary ,它的 keys 是 NSString , value 是裝著 NSDate 的 NSArray ,這個 NSDictionary 也算一個 Property List。

反正只能由這個成員組成就對了。

為什麼需要 Property List ? Property List 主要用在兩個地方:

  1. 用來「盲傳資料」(Blind data passing),也就是傳不知道是什麼型別的資料。
  2. 可作基本型別 (Generic data structure) 使用。

NSUserDefaults

  1. NSUserDefaults 是一個儲存 Property List 的機制。
  2. 即使程式關閉了,資料還在。
  3. 適用於「設定」之類的情景。
  4. 不適合較大的資料,像圖片之類。

 

分享到: