質問

カスタムクラスのインスタンスが入力されたMainObjectArray(nsmutablearray)があります。各インスタンスはそれ自体が配列であり、各配列のオブジェクトは、NSDate、NSStrings、Bool、および同様のオブジェクトを含むより多くの配列です。

私が確立できなかったのは、それが可能かどうか、

- (void)encodeWithCoder:(NSCoder *)encoder 

方法、そのようなことを言うだけです:

[encoder encodeWithObject:mainObjectArray];

または、すべてのインスタンスのすべてのオブジェクトを個別にエンコードする必要がありますか?これは少し痛いでしょう...

あなたの助けは大歓迎です。

役に立ちましたか?

解決

カスタムクラスにエンコードとデコードのメソッドを実装するだけです。それはそうします。いくつかのサンプル、

- (void)encodeWithCoder:(NSCoder *)encoder
{
    [encoder encodeObject:[NSNumber numberWithInt:pageNumber] forKey:@"pageNumber"];
    [encoder encodeObject:path forKey:@"path"];
    [encoder encodeObject:array forKey:@"array"];
}

- (id)initWithCoder:(NSCoder *)aDecoder
{
    if(self = [super init]) 
    {
        self.pageNumber = [[aDecoder decodeObjectForKey:@"pageNumber"] intValue];
        self.path = [aDecoder decodeObjectForKey:@"path"];
        self.array = [aDecoder decodeObjectForKey:@"array"];
    }
}

完全に3つのデータ型がエンコードおよびデコードされていることがわかります - int、string、array。

お役に立てれば。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top