Жесткая ошибка означает, что когда-нибудь в будущем компилятор будет вести себя так, как вы ожидаете (то есть он не будет компилировать исходный файл, когда вы непосредственно обращаетесь к переменной экземпляра вне определенной области видимости).
Сейчас компилятор просто не применяет Objective-C к ограничениям видимости. Однако здесь есть предупреждение, чтобы напомнить вам, что вы делаете что-то, чего не следует делать, и обратить на это внимание, если вы сделали это случайно.
Если бы мне пришлось рисковать догадкой, почему видимость не обеспечивается, я бы сказал, что со всеми бесплатными мостовыми соединениями между библиотекой Foundation и библиотекой CoreFoundation, вероятно, имеется приличное количество библиотек. код, обращающийся к переменным экземпляра, который, строго говоря, не должен быть видимым.
В общем, плохой идеей является прямой доступ к переменной экземпляра в любом случае. Пока вы можете использовать Obj-C 2.0, вероятно, лучше использовать что-то вроде свойств, если вы проектируете объект модели с чистыми данными.