Заявленные свойства не могут обрабатываться так же, как и @protected
ivar.Вы можете объявить свойство в расширении класса, чтобы сохранить его закрытым для любого другого класса, или объявить его в интерфейсе заголовка, чтобы сделать его общедоступным, однако нет способа сделать его доступным только для подклассов.Для этого потребуется объявление ivar.
РЕДАКТИРОВАТЬ
Еще одна краткая мысль.Недавно я писал много классов фреймворка, и я думаю, что можно было бы что-то сказать об использовании iVars в качестве документации.
Например, допустим, вы вызываете некоторый код в узком цикле и хотитечтобы убедиться, что это производительно.Внутри этого тесного цикла вы хотите получить доступ к свойству класса, но вам необходимо знать, вычисляется ли при каждом вызове его возвращаемое значение на лету или сохраняется в iVar.Просмотр iVar в заголовке - это быстрый способ убедиться, что вы вернете эту переменную без особых затрат.