티스토리 뷰
Swift & objc
Key-Value Coding Programming Guide - Adopting Key-Value Coding - Handlinig Non-Object Values
rhinoPHS 2019. 2. 3. 12:05Key-Value Coding Programming Guide - Adopting Key-Value Coding - Handlinig Non-Object Values
기본적으로 KVC이 제공하는 wrap and unwrap에 의존해서 사용합니다. (representing Non-Object Value.) 그러나 non-object properties에 nil이 저장 될 때는 대비해서 기본 구현을 오버라이드 할 수 있습니다.
!Note
스위프트에서는 모든 프로퍼티가 객체이기 때문에 이 장에서 나오는 내용은 objc에만 적용됩니다.
KVC를 사용하는 객체가 setValue:forKey: 메시지를 받을 때 setValue로 nil이 들어오고 key에 해당하는 프로퍼티가 객체가 아니면 setNilValueForKey:메시지를 호출합니다. 이 메소드는 기본적으로 NSInvalidArgumentException 예외를 일으키기 때문에 적절히 오버라이드 해서 사용하는 게 좋습니다.
- (void)setNilValueForKey:(NSString *)key
{
if ([key isEqualToString:@"age"]) {
[self setValue:@(0) forKey:@”age”];
} else {
[super setNilValueForKey:key];
}
}