У меня есть объект Data Data Series
с переходным attr indexCurrent
. Когда внешние классы получают доступ indexCurrent
, я хочу, чтобы они отправляли в arg, который может быть использован для проверки того, нужно ли обновлять значение indexCurrent
перед его возвратом. Поэтому я объявил indexCurrent
в качестве частной переменной и разрешил доступ к нему только через этот специальный метод с аргументом arg.Невозможно сделать атрибут переходных данных основного данных private
Но, несмотря на то, что предупреждения компилятора не распознаются «методом не найдены», он позволяет внешним классам звонить как indexCurrent
, так и setindexCurrent:
, и этот неисправный код выполняется с полным успехом.
Вот Series
интерфейс:
@interface Series : NSManagedObject {
@private
NSNumber *indexCurrent;
}
indexCurrent
не propertized, не объявлен как динамический в файле реализации, и я не написал indexCurrent
или setindexCurrent:
аксессоров.
Что я делаю неправильно? Как я могу сделать indexCurrent
частным?
Я считаю, что результатом является то, что это не такая штука, как частные атрибуты управляемого объекта, и мне просто придется полагаться на отсутствие точечного синтаксиса (который не будет работать без строки @property) для обеспечения моего дизайна. Спасибо за ваши объяснения, которые делают хороший урок анатомии на Core Data. – Wienke
Имейте в виду, что вся концепция общедоступной защиты и конфиденциальности на самом деле не является шаблоном проектирования Objective-C. Он существует, но я не стал бы на него полагаться. Маркеры больше для человека, чтобы читать и говорить «о, я не должен касаться этого». Компилятор не будет мешать вам, если вы проигнорируете это предупреждение. –