6

これは配列をロードします

- (id)initWithCoder:(NSCoder*) coder
{
    self = [super initWithCoder: coder];
    if (self) {
        myArray=[coder decodeObjectForKey:@"myArray"];
    }
    return self;
}

配列をロードできるようにこの関数を呼び出すコードは何ですか?

4

2 に答える 2

4

メソッドは、[NSKeyedUnarchiver unarchiveObjectWithFile:]などを介して、NSCoding プロトコルinitWithCoder:を使用してデシリアライズするために使用されます。詳細については、Archives and Serializations Programming Guide、特にEncoding and Decoding Objectsセクションを参照してください。

于 2010-09-18T14:03:43.133 に答える
1

DarkDust が言ったように、NSUarchiver または NSKeyedUnarchiver が使用されたときに呼び出されます。ただし、これは必ずしも独自のケースではありません。カスタム NSCoder を実際に実装し、それに応じて NSDecoder を実装することもできます。たとえば、yaml をエンコード/デコードするなど...

最も一般的な使用例は、nib ファイルをロードする場合です。これらのコンテンツはアーカイブされているためです。

于 2010-09-18T14:18:32.967 に答える