NSuserdefaults에 Objective C 기반 객체를 저장하려고합니다.NSuserDefaults에서 데이터를 보관 취소하는 올바른 방법은 무엇입니까?
NSuserDefaults에서 데이터를 검색하려면 initWithCoder 메서드를 사용합니다.
구현 한
- (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을 구현하지 않으므로 (자신의 클래스에 명시 적으로 선언해야 함) NSObject에서 직접 파생 된 클래스에서 [super initWithCoder : decorder]를 호출 할 수 없습니다. – interrupt