supportsSecureCoding
Overview 概要
Historically, many classes decoded instances of themselves like this: 歴史的に、多くのクラスはそれら自身のインスタンスをこのようにデコードしました:
This technique is potentially unsafe because by the time you can verify the class type, the object has already been constructed, and if this is part of a collection class, potentially inserted into an object graph. この手法は潜在的に安全ではありません、なぜならあなたがクラス型を検証できるようになるまでに、オブジェクトは既に組み立てられてしまう、そしてこれがコレクションクラスの一部ならば、可能性としてオブジェクトグラフへと挿入されてしまうからです。
In order to conform to NSSecure
:
NSSecure
に準拠するためには:
An object that does not override
init
can conform toWith Coder: NSSecure
without any changes (assuming that it is a subclass of another class that conforms).Coding init
をオーバーライドしないオブジェクトは、With Coder: NSSecure
に何ら変更なしに準拠できます(それは、準拠する別のクラスのサブクラスであると仮定します)。Coding -
An object that does override
init
must decode any enclosed objects using theWith Coder: decode
method. For example:Object Of Class: for Key: init
をオーバーライドするオブジェクトは、あらゆる封入されたオブジェクトをWith Coder: decode
メソッドを使ってデコードしなければなりません。例えば:Object Of Class: for Key: In addition, the class must override the getter for its
supports
property to returnSecure Coding YES
. 加えて、クラスはそれのsupports
プロパティをオーバーライドしてSecure Coding YES
を返さなければなりません。
For more information about how this relates to the NSXPC API, see Creating XPC Services in Daemons and Services Programming Guide. どのようにこれがNSXPC APIと関連するかについてのさらなる情報として、Creating XPC ServicesをDaemons and Services Programming Guideで見てください。