NSCoding


継承:なし

従属:なし

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


概要


NSCoding プロトコルは、そのクラスのインスタンスをコード化および復号できるようにクラスが実装しなければならない 2 つのメソッドを宣言します。この機能は、(オブジェクトおよびその他の構造体がディスク上に保存される) アーカイブ用および (オブジェクトが異なるアドレス空間にコピーされる) 配布のための基礎を提供します。


オブジェクト指向デザイン原理と一致して、符号化し、復号化するオブジェクトは、そのインスタンス変数をコード化又は復号化する責任があります。コーダーは encodeWithCoder:initWithCoder: を呼び出すことによりそうするようにオブジェクトに指示します。encodeWithCoder: は、提供されるコーダーにそのインスタンス変数をコード化するようにオブジェクトに指示します。オブジェクトは、このメソッドを何回でも受けることができます。initWithCoder: は、提供されるコーダのデータから自分自身を初期化するように、オブジェクトに指示します。このように、それは他の初期化メソッドを置き換え、オブジェクトごとに一度だけ送信されます。コード可能でなければならない全てのオブジェクトクラスは、NSCoding プロトコルを採用し、そのメソッドを実装する必要があります。


コーダーがサポートするアーカイブの可能なタイプを考慮することが重要です。OS X のバージョン 10.2 以降では、キー付きアーカイブが好まれます。しかし、古典的なアーカイブをサポートする必要があるかもしれません。詳細については、アーカイブおよびシリアル化・プログラミング・ガイド を参照してください。


タスク


コーダーでの初期化


- initWithCoder: 必須


与えられた脱アーカイバーのデータから初期化されたオブジェクトを返します。


宣言

<< SWIFT >>

init?(coder aDecoder: NSCoder)

<< OBJECTIVE-C >>
- (instancetype)initWithCoder:(NSCoder *)decoder


パラメーター

decoder脱アーカイバーオブジェクト。

戻り値

decoder 内のデータを使用して初期化したself


議論

initWithCoder からは self を必ず返さなければなりません。復号後の異なるオブジェクトを代入する必要がある、高度な必要性がある場合は、awakeAfterUsingCoder: で行うことができます。


利用可能

OS X 10.0 以降で利用可能。





コーダーでのコード化


- encodeWithCoder:


与えられたアーカイバを使用して、受信者をコード化します。


宣言

<< SWIFT >>

func encodeWithCoder(_ aCoder: NSCoder)

<< OBJECTIVE-C >>
- (void)encodeWithCoder:(NSCoder *)encoder


パラメーター

encoderアーカイバオブジェクト。






次:文書改定履歴
目次
Xcode の新機能

  • NSCoding
  • 概要
  • タスク
  • コーダーでの初期化
  • initWithCoder: 必須
  • コーダーでのコード化
  • encodeWithCoder:
    文書改定履歴












    トップへ(NSCoding)












    トップへ(NSCoding)












    トップへ(NSCoding)












    トップへ(NSCoding)












    トップへ(NSCoding)












    トップへ(NSCoding)












    トップへ(NSCoding)












    トップへ(NSCoding)












    トップへ(NSCoding)