Например, я подклассифицировал UILabel
и добавил метод или свойство под названием -verticalTextAlignment
для выравнивания текста по вертикали.
И в будущем, если в следующей версии SDK или iOS добавлен метод или свойство с таким же именем, тогда возможно, что приложение неожиданно произойдет с ошибкой.
* Эта проблема возникает, даже если вы используете категорию вместо подкласса.
Question1
Как избежать такого рода случайного переопределения в Objective-C?
Я думаю, вы можете избежать этого, добавив все свои методы и свойства, например -XXX_verticalTextAlignment
. Но это нереально, не так ли?
Вопрос2
Я знаю, что такое случайное переопределение происходит во время компиляции или при обновлении SDK для iOS, OSX SDK или XCode.
Но возможно ли это также при обновлении версии iPhone iOS?
Например, возможно ли, что ваше приложение хорошо работает на iOS5, но не работает на iOS6 из-за случайного переопределения в iOS6. (Вы можете заменить iOS5 и iOS6 на любые версии, например iOS5.0 и iOS5.1)