NSSecureCoding


継承:なし

準拠:NSCoding

フレームワーク:OS X 10.0 以降の Foundation。関連項目




概観


NSSecureCoding プロトコルに準拠すると、オブジェクトは、オブジェクトの置換攻撃に対して荒々しい方法で自身のインスタンスの符号化と復号化を処理することを示しています。


歴史的に、多くのクラスは次のように自分自身のインスタンスを復号化します:


<< OBJECTIVE-C >>

  1. id obj = [decoder decodeObjectForKey:@"myKey"];
  2. if (![obj isKindOfClass:[MyClass class]]) {...fail...}

<< SWIFT >>

  1. if let object = decoder.decodeObjectForKey("myKey") as MyClass {
  2.         ...succeeds...
  3. } else {
  4.         ...fail...
  5. }

この技術は、時間によって、クラスの種類を確認することができるので、オブジェクトがすでに構築されていて、安全でない可能性があり、これがコレクションクラスの一部である場合、潜在的にオブジェクトグラフに挿入されます。


NSSecureCoding に準拠するためには:


<< OBJECTIVE-C >>

  1. id obj = [decoder decodeObjectOfClass:[MyClass class]
  2.                         forKey:@"myKey"];

<< SWIFT >>

let obj = decoder.decodeObjectOfClass(MyClass.self, forKey: "myKey")


また、クラスは、YES を返すために、その supportsSecureCoding メソッドをオーバーライドしなければなりません。


これに関する情報の詳細については NSXPC API に関連しており、デーモンとサービスプログラミングガイドXPC サービスの作成 を参照してください。


タスク


安全にコード化する要件の確認


+ supportsSecureCoding 必須


クラスは、安全にコード化するのをサポートしているかどうかを返します。


宣言

<< SWIFT >>

static func supportsSecureCoding() -> Bool

<< OBJECTIVE-C >>

+ (BOOL)supportsSecureCoding


戻り値

あなたのクラスが、安全にコード化するのをサポートしていれば YES、そうでない場合は、NO を返します。


利用可能

OS X v10.8 以降で利用可能。





次の章
目次
Xcode 9 の新機能
NSObject(class)

  • NSSecureCoding
  • 概観
  • タスク
  • 安全にコード化する要件の確認
  • supportsSecureCoding 必須
    文書改定履歴












    トップへ(NSSecureCoding)












    トップへ(NSSecureCoding)












    トップへ(NSSecureCoding)












    トップへ(NSSecureCoding)












    トップへ(NSSecureCoding)












    トップへ(NSSecureCoding)