init?(coder: NSCoder)
Overview 概要
The NSCoding
protocol declares the two methods that a class must implement so that instances of that class can be encoded and decoded. This capability provides the basis for archiving (where objects and other structures are stored on disk) and distribution (where objects are copied to different address spaces).
NSCoding
プロトコルは、2つのメソッドを宣言します、それはそのクラスのインスタンスがエンコードおよびデコードされることができるために、あるクラスが実装する必要があるものです。この能力は、アーカイブ(そこにおいてオブジェクトや他の構造体がディスク上に保管されます)と分散(そこにおいてオブジェクトが異なるアドレス空間へコピーされます)の基礎を提供します。
In keeping with object-oriented design principles, an object being encoded or decoded is responsible for encoding and decoding its instance variables. A coder instructs the object to do so by invoking encode(with:)
or init(coder:)
. encode(with:)
instructs the object to encode its instance variables to the coder provided; an object can receive this method any number of times. init(coder:)
instructs the object to initialize itself from data in the coder provided; as such, it replaces any other initialization method and is sent only once per object. Any object class that should be codeable must adopt the NSCoding
protocol and implement its methods.
オブジェクト指向デザイン原則に従って、符号化または複合されるオブジェクトは、それのインスタンス変数を符号化および復号する責任を負います。コーダーは、encode(with:)
またはinit(coder:)
を発動することによってそうするようにオブジェクトに指示します。encode(with:)
はオブジェクトに、提供されたコーダーに対するそれのインスタンス変数を符号化するように指示します;オブジェクトはこのメソッドを任意の回数受け取ることができます。init(coder:)
はオブジェクトに、提供されたコーダーにおいてデータからそれ自身を初期化するように指示します;そういうものとして、それは何か他の初期化メソッドを置き換えて、オブジェクトごとに一度だけ送られます。コーダブルであるべきあらゆるオブジェクトクラスは、NSCoding
プロトコルを採用してそれのメソッドを実装しなければなりません。
It is important to consider the possible types of archiving that a coder supports. In macOS 10.2 and later, keyed archiving is preferred. You may, however, need to support classic archiving. For details, see Archives and Serializations Programming Guide. 重要なのは、コーダーがサポートする、アーカイブに可能な型を考慮することです。macOS 10.2以降では、キー付きアーカイブが好まれます。あなたは、しかしながら、古典的なアーカイブをサポートする必要があるかもしれません。詳細として、Archives and Serializations Programming Guideを見てください。