![]() |
1
47
取自 Source . |
![]() |
2
156
你可以 模拟
正如Sachin所指出的,这些保护并不是在运行时强制执行的(例如在Java中)。 |
![]() |
3
14
下面是我为使受保护的方法对我的子类可见而做的,而不要求它们自己实现这些方法。这意味着我在我的子类中没有收到编译器关于实现不完整的警告。
m:(编译器现在将强制您添加受保护的方法)
|
![]() |
4
9
我刚刚发现了这个,它对我有用我。给你改进Adam的答案,在你的超类中,在.m文件中实现受保护的方法,但不要在.h文件中声明它。在您的子类中,在.m文件中创建一个新的类别,声明超类的受保护方法,您可以在子类中使用超类的受保护方法。如果在运行时强制执行,这最终不会阻止假定受保护方法的调用方。
|
![]() |
5
2
另一种使用@protected变量的方法。
|
![]() |
6
1
|
![]() |
7
0
你可以 某种程度上 使用类别执行此操作。
最好的方法可能是@Brian Westphal回答的类延续类别,但是您必须为每个子类实例重新定义这个类别中的方法。 |
![]() |
8
0
一种选择是使用 类扩展
在
在
|
![]() |
9
0
|
![]() |
Martin sku · 在目标C中打印时间 3 年前 |
![]() |
Vinod prajapat · 如何更新数组的最后一个元素? 3 年前 |
![]() |
subin272 · 修复iOS中的多个按钮单击事件? 7 年前 |
![]() |
James Chan · 如何使用锁定/解锁? 7 年前 |
![]() |
Josh F. · NSBundle mainBundle返回零 7 年前 |