2016-12-07 4 views
1

나는 영속성을 위해 영역을 사용하고 있으며 읽기 전용으로 표시된 속성에는 액세스 할 수 없습니다.Realm 객체에 내 속성이 없습니다.

더 정확하게는 도트 표기법을 사용하여 인쇄 할 수 있지만 po object은 읽기 전용 속성 만 표시하고 objectsWhere을 사용하면 읽기 전용 속성에 액세스하려고하면 충돌이 발생합니다.

표준 NSObject 클래스를 사용하여 테스트했는데 문제가 사라졌습니다 (po 명백하게). 왜 내가/왜 영역이 읽기 전용 속성을 무시하는지 궁금하게 생각합니까?

답변

2

맞습니다! 등록 정보가 readonly으로 표시된 경우, Realm은이를 무시하고 데이터베이스 파일에 해당 등록 정보의 뒷면을 작성하지 않습니다. 이는 ignoredProperties 메서드에 메서드를 넣는 것과 같은 암시 적 동작이 RLMObject입니다. 이들은 전통적인 Objective-C 속성으로 남겨집니다. :)

po object 명령에서 속성을 볼 수있게하려면 개체의 - (NSString *)description 메서드를 무시하고 개체가 인쇄 된 설명 문자열에 포함되어 있는지 확인하십시오.

readonly 속성은 Realm에서 지원하지 않으므로 사용자 지정 Realm 쿼리 엔진을 사용하므로 objectsWhere으로 수행 할 수있는 작업이 상당히 제한됩니다. 다른 영역 속성이 해당 속성과 일치하는지는 아마 확인할 수 있지만 속성 자체를 검색중인 항목으로 사용하여 쿼리를 만들 수는 없습니다.

관련 문제