코어 데이터 엔티티 Series
에 일시적 attr indexCurrent
이 있습니다. 외부 클래스가 indexCurrent
에 액세스 할 때, 나는 그들을 반환하기 전에 indexCurrent
의 값을 업데이트해야하는지 확인하는 데 사용할 수있는 arg를 보내길 원합니다. 따라서 indexCurrent
을 개인 변수로 선언하고 arg를 사용하여 특수한 메서드를 통해서만 외부 액세스를 허용합니다.코어 데이터 과도 특성을 개인용으로 만들 수 없습니다.
그러나 컴파일러에서 "메서드를 찾을 수 없음"경고를 발행해도 외부 클래스가 indexCurrent
및 setindexCurrent:
을 모두 호출 할 수 있으며이 오류 코드는 완전한 성공으로 실행됩니다. 여기
Series
인터페이스 :
@interface Series : NSManagedObject {
@private
NSNumber *indexCurrent;
}
indexCurrent
이 propertized되지 않으며, 구현 파일에서 동적으로 선언되지 않으며, 나는 indexCurrent
또는 setindexCurrent:
접근을 작성하지 않았습니다.
내가 뭘 잘못하고 있니? indexCurrent
을 비공개로 설정하려면 어떻게해야하나요?
개인 관리 객체 속성과 같은 것이 아니기 때문에 dot-syntax가 없다는 점에 유의해야합니다 (@property 행이 없으면 작동하지 않습니다) 제 디자인을 강요합니다. 귀하의 설명에 감사 드리며, Core Data에 대한 좋은 해부학 교훈을 얻습니다. – Wienke
public과 private의 전체 개념은 실제로 Objective-C 디자인 패턴이 아닙니다. 그것은 존재하지만 나는 그것에 의존하지 않을 것이다. 마커는 인간이 읽을 수있는 곳이 더 많습니다. 이 경고를 무시하면 컴파일러는 방해가되지 않습니다. –