独自のクラスで
- (id)initWithCoder:(NSCoder *)coder {
if (self = [self init]) {
hoge = [coder decodeBoolForKey:@"hoge"];
}
return self;
}
と実装したとします。
アップデートでじゃあpiyoというプロパティを増やそう。となると
- (id)initWithCoder:(NSCoder *)coder {
if (self = [self init]) {
hoge = [coder decodeBoolForKey:@"hoge"];
piyo = [coder decodeBoolForKey:@"piyo"];
}
return self;
}
と、普通に増やすと思います。
これ、piyoの初期値をTrueにしたい場合って、どうすりゃいいんだろという…。
self = [self init]
で、piyoは初期値trueをセットされても、
piyo = [coder decodeBoolForKey:@"piyo"];
でdecodeBoolForKey:はnilを返し、poyoはfalseに上書きされてしまうのです。
いちいちサブクラスを見てnilかどうか判別しないといけないのでしょうか…。
なんかいい方法がありそうだけどなぁ…。
解決しましたら更新します。