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