2013-02-27 4 views
0

나는 기본값이 없기를 원했을 때 선택 사항으로하고 싶은 'NSNumber'을 가지고 있는데, 'missing'을 나타내는 마술 번호 (예 : 0 또는 -1)가 없습니다. 즉. 데이터베이스에서 값이 숫자 또는 null이되도록합니다. 그것은 아무런 문제없이 null에서 시작하지만 일단 숫자가 생기면 어떻게 '누락'으로 재설정 할 수 있습니까?선택적 속성에 대한 데이터를 지우는 방법은 무엇입니까?

  1. myAttribute = nil;
  2. myAttribute = [NSNull null];
  3. [self setValue:[NSNull null] forKey:@"myAttribute"];
  4. [self setPrimitiveValue:[NSNull null] forKey:@"myAttribute"];

은 첫 번째 충돌하지 않습니다,하지만 난 핵심 데이터가 전무에 속성 설정을 이해한다

나는 시도 효과적으로 가져온 적이 없다고 말하고있다. 따라서 업데이트되지 않습니다. 다른 세 충돌.

많은 권장 사항에 따르면 NSNumber에는 항상 숫자가 포함되어야하므로 대답이 필요하지 않습니다. 이 문제를 극복하려면 데이터를 NSString에 저장하는 척하십시오. 빈 문자열이 아닌 데이터베이스에 NULL을 저장할 핵심 데이터를 얻으려면 어떻게해야합니까?

self.myAttribute = nil; 
[self setValue:nil forKey:@"myAttribute"]; 

모두 일 :

+0

'코어 데이터 속성을 nil로 설정하면 효과적으로 페치되지 않는다 '는 것을 알 수 있습니까? 난 그걸 모를거야, 내가 참고가 될 수 있을까? –

답변

0

당신은 nil에 선택적 속성의 값을 설정할 수 있습니다, 그 아무 문제가 없어야합니다. NSNull은 숫자가 아니기 때문에 통화 2, 3, 4가 실패합니다.

+0

당신 말이 맞아요. 옵션 1이 작동하지 않는다고 생각하게하는 다른 코드 문제가 있었을 것입니다. – Michael

관련 문제