したがって、シリアル化され、ファイルに格納されているビューがあります。そのビュー内ではnサブクラスのUILabelsであり、唯一の違いはliveプロパティです。私はUILabelサブクラス内にinitwithcoderとencodewithcoderを持っていますが、まだラベル内にカスタム変数を取得できません。私はサブクラスのメソッドと以下を含んでいます。どんな助けもありがとうございます。サブクラス化されたUILabelは、シリアル化されたビュー内に格納され、カスタムバーを格納しません。
カスタム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がカスタムラベルをアーカイブ解凍しないと仮定しますか?
おかげ
ビューをシリアル化する理由がわかりません。適切なことは変数を直列化し(おそらくplistで)、後で必要なときにビューをインスタンス化することです。 – sosborn
私が何を意味するのかわかっている場合は、外部からラベルをアーカイブ/アーカイブ解除するコードを表示してください。また、super encodeWithCoderの呼び出しがありません。 – jrturton
そして、意外なことに、それが私が逃したものです。ありがとうございます。すべては今働いている。 unarchiverは、単にファイルからバイトを取得し、データからビューをロードします。あなたが答えとしてそれを追加する場合、私はそれを正しいとマークし、それをあなたに推薦します。ありがとうございました! –