1

だから、私はシリアル化されてファイルに保存されているビューを持っています。そのビュー内には、n個のサブクラス化されたUILabelがありますが、唯一の違いはライブプロパティです。UILabelサブクラス内にinitwithcoderとencodewithcoderがありますが、ラベル内でカスタム変数を取得できません。サブクラスのメソッドと以下を含めました。どんな助けでも大歓迎です。

カスタムUILabel:

- (id) initWithCoder:(NSCoder *)decoder
{
    self = [super initWithCoder:decoder];

    if (self != nil) {
        self.live = [decoder decodeBoolForKey:@"live"];
    }
    return self;
}

-(void)encodeWithCoder:(NSCoder *)aCoder {
    [aCoder encodeBool:self.live forKey:@"live"];
}

中にラベルが含まれているビューをアーカイブ解除しているだけなので、iOSはカスタムラベルをアーカイブ解除しないと思いますか?

ありがとう

4

1 に答える 1

0

への呼び出しがありません[super encodeWithCoder:aCoder]。これにより、オブジェクトが誤ってシリアル化されます。結果がどうなるかはわかりませんが、そのうちの1つを見つけたようです。

于 2011-12-19T12:21:09.397 に答える