Я хранил некоторые объекты на основе Objective C в NSuserdefaults.Каков правильный способ удаления данных из NSuserDefaults?
Для извлечения данных из NSuserDefaults я использую метод initWithCoder.
Я видел две различные реализации этого:
Осуществление 1
- (id)initWithCoder:(NSCoder *)decoder {
self = [super init];
if (self != nil){
//decode properties, other class vars
self.variable = [decoder decodeObjectForKey:@"variable"];
}
return self;
}
Реализация 2
- (id)initWithCoder:(NSCoder *)decoder {
self = [[CustomClass alloc] init];
if (self != nil){
//decode properties, other class vars
self.variable = [decoder decodeObjectForKey:@"variable"];
}
return self;
}
Какой правильный путь?
В чем разница между этими двумя?
initWithCoder является участником протокола NSCoding. NSObject не реализует NSCoding (вы должны явно объявить его для своего собственного класса), поэтому вы не можете вызвать [super initWithCoder: decorder] из класса, непосредственно полученного из NSObject. – interrupt