例如,我进行了子类化UILabel并添加了一个方法或属性,-verticalTextAlignment用于垂直对齐文本.
并且在将来,如果下一版本的SDK或iOS添加了具有相同名称的方法或属性,则可能是我的应用程序崩溃或意外行为.
*即使您使用类别而不是子类化,也会出现此问题.
问题1
如何避免Objective-C中的这种意外覆盖?
我认为你可以通过为你的所有方法和属性添加前缀来避免这种情况-XXX_verticalTextAlignment.但这不现实,不是吗?
问题2
我知道这种意外压倒一切的发生在编译时,或当你更新iOS SDK,OSX SDK或XCode中.
但是在更新iPhone的iOS版本时是否也可能发生?
例如,您的应用程序是否可能在iOS5上运行良好但由于iOS6中的意外覆盖而无法在iOS6上运行.(您可以将iOS5和iOS6替换为任何版本,例如iOS5.0和iOS5.1)