NSKeyedArchiver.archivedDataWithRootObject(obj)
オブジェクトを に変換するために使用しますNSData
。このarchivedDataWithRootObject(obj)
メソッドでは、そのパラメータがNSObject
に準拠するである必要がありますNSCoding
。
Swift String
、Array
、および をアーカイブしてみDictionary
ましたが、うまくいきました。なので適合だと思いString
ます。NSObject
NSCoding
また、プレイグラウンドでこのコードをチェックして、次のことを確認しString
ましたNSObject
。
var str = "Hello, playground"
let isObject = (str is NSObject) // isObject is true
しかし、String
(Cmd + クリックで) の定義に移動すると、それString
がstruct
. String
であることを示すコードが見つかりませんNSObject
。
public struct String {
/// An empty `String`.
public init()
}
では、なぜ定義で、それがString
であることを示すコードが見つからないのでしょうか? そして、なぜ構造体を にできるのでしょうか?String
NSObject
NSObject