在iPhone应用程序中,我需要自定义UINavigationController类的外观。例如,使条形和字体大小更大。我的客户真的需要它,还有更大的按钮。
因此,我决定继承UINavigationController,而不是从头开始编写类。我的问题是,我可以自定义任何方法或属性的默认值吗?在继承类时是否有任何限制?
答案 0 :(得分:2)
答案 1 :(得分:2)
这取决于你所说的“限制”。运行时不会阻止你继承任何你喜欢的东西,但有一些陷阱。 (虽然你的答案是关于UINavigationController的,但标题和概念更大,所以我将解决更大的问题。)
@private
并且子类无法访问的变量,而默认值为@protected
可以访问。在这种情况下,你完全没有从头开始编写课程 - 这将是一个坏主意™。如果要更改属性的默认值(字段?),可以在调用父级初始值设定项后的初始值设定项中设置所需的值。但是,如果你这样做,请确保你没有在父类中输入某些东西,并且总是彻底测试。
Apple保留了以“_”开头的方法供自己使用,所以我要回应Marc的注意,不要碰那些。当然,其他一切都是公平的游戏。 : - )