코어 데이터를 백엔드로 사용하여 SQLite 레코드를 관리하는 앱을 개발 중입니다. 문자열과 숫자로 작업하는 모든 것이 있지만 BOOL 필드를 추가하려고 시도했지만 작동하지 않는 것처럼 보입니다.코어 데이터 및 BOOL 설정
.xcdatamodel에서 isCurrentlyForSale
이라는 개체에 필드를 추가했는데이 필드는 선택 항목이 아닌 일시적 항목이 아니며 인덱싱되지 않았습니다. 속성의 유형은 부울로 설정되고 기본값은 NO입니다. 나는 데이터 모델에서 클래스 파일을 만들 때
는, 상용구 코드가 .H 헤더에이 부동산에 대한 추가했다 다음
@dynamic isCurrentlyForSale;
과 함께
@property (nonatomic, retain) NSNumber * isCurrentlyForSale;
하는 .m에 구현 파일.
저는 항상 단순한 BOOL로 부울을 사용했습니다. 나는 NSNumber의 numberWithBool
과 메쏘드를 사용할 수 있다고 읽었지 만, 이것은 매우 간단한 무언가를위한 여분의 코드를 많이 쓴 것처럼 보입니다.
헤더의 @property를 간단한 BOOL로 변경할 수 있습니까? 그렇다면 조심해야 할 것이 있습니까?
감사합니다 요한 복음
설정자 또는 속성에 "is"가 있어야합니다. 그래서'@ property'는'getter ='설정을 가지고 있습니다. 그리고 네, 핵심 데이터의 일부인 원시 접근자를 사용하여'@ property'를 BOOL로 변경할 수 있습니다. –
@Marcus 네, setter는 그 안에'Is '가 없어야한다는 것을 알고 있습니다.하지만'setCurrentlyForSale :'이 이미 CD에 의해 사용 되었기 때문에 넣었습니다. ('getter ='와'setter ='를 알고 있습니다. 그리고 헤더의'NSNumber * '를'BOOL'으로 바꿀 수 있다는 말입니까?그것은 분명히 놀랄 것입니다. –