EntityA
에는 선택 속성 인 int32 result
이 있습니다. EntityA
을 만들 때 result
속성을 설정하지 않습니다. 그렇다면 나중에 가져올 때 nil
값을 가질 것이라고 기대하지만 어떤 이유로이 속성을 설정하지 않았더라도 3
으로 설정됩니다.핵심 데이터 - 선택적 속성이있는 객체 가져 오기
여기 무슨 일 이니?
EntityA
에는 선택 속성 인 int32 result
이 있습니다. EntityA
을 만들 때 result
속성을 설정하지 않습니다. 그렇다면 나중에 가져올 때 nil
값을 가질 것이라고 기대하지만 어떤 이유로이 속성을 설정하지 않았더라도 3
으로 설정됩니다.핵심 데이터 - 선택적 속성이있는 객체 가져 오기
여기 무슨 일 이니?
1 가능한 문제 : 당신은 모델 편집기에서 기본 값을 설정 한
. 속성을 선택하고 속성을 확인하십시오.
2 가능한 문제 :
당신은 검색 또는 잘못된 값을 보여주고있다. 결과를 '3'으로 찾으려면 사용중인 코드를 표시하십시오.
3 가능한 문제 :
당신은 아마 루프 또는 이와 유사한에서 나중에 실수로 값을 설정합니다. 속성에서 텍스트 검색을 수행하여 코드에서 가능한 항목을 찾으십시오.
int32는 NSNumber 객체로 랩핑되어 저장됩니다. 값을 제공하지 않으면 NSNumber 객체가 생성되지 않습니다. sql은이 객체를 NULL로 처리합니다.
아이폰 OS 코어 데이터 프로그래밍 가이드
는 말한다 :당신은 속성이 IS-그 선택 사항입니다 지정할 수 있습니다, 그것은 값을 가질 필요 없습니다. 그러나 일반적으로 숫자 값에 대해서는 을 사용하지 않는 것이 좋습니다. 일반적으로 모델 0의 기본값이있는 필수 속성을 사용하면 결과가 더 좋습니다. 그 이유는 SQL에 Objective-C의 nil과 다른 특수 비교 NULL에 대한 동작이 있기 때문입니다. 데이터베이스의 NULL 은 0과 같지 않으며 0을 검색하면 NULL이있는 열과 일치하지 않습니다.
그래서, 속성이 의무화와 별개의 값으로 설정하거나, 처음부터의 NSNumber에 전달하는 하나 더 좋을 수 있습니다.
좋습니다. 기본값으로 나를 구할 수 있습니다. 감사! –