티스토리 뷰

Key-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 예외를 일으키기 때문에 적절히 오버라이드 해서 사용하는 게 좋습니다.


  1. - (void)setNilValueForKey:(NSString *)key
  2. {
  3. if ([key isEqualToString:@"age"]) {
  4. [self setValue:@(0) forKey:@”age];
  5. } else {
  6. [super setNilValueForKey:key];
  7. }
  8. }








반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함