@interface MyClass() - (voID) privateMethodname;@end
问题:
如果我现在添加一个子类,并想使用这个’私有’方法,我不能!我得到错误:
Receiver type ‘SubClassname’ for instance message does not declare a
method with selector ‘privateMethodname’
所以,如果我不希望非子类能够访问此方法,但是希望子类能够,我该怎么办?实现我的目标的最佳/正确的方法是什么?
解决方法 您可以将“受保护”界面与公共界面分开.在主标题中,只需声明公共方法:MyMagicThingy.h:
@interface MyMagicThingy: NSObject- (voID) publicmethod;@end
然后,有一个额外的头与受保护的方法:
MyMagicThingy Protected.h:
#import "MyMagicThingy.h"@interface MyMagicThingy (Protected)- (voID) protectedMethods;@end
您不能在Objective C中具有“真正的”私有/保护/公共方法(如:编译器将强制执行访问规则,所有方法都是公开的).你必须和大会一起去.
总结以上是内存溢出为你收集整理的iphone – Objective-C私有方式困境全部内容,希望文章能够帮你解决iphone – Objective-C私有方式困境所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)