[英]Which is the best way to define private methods for a class in Objective-C?
喜欢:
@interface ClassXXName(private)
- (void) xxxfunctions
@end
还是用户类别方法?
@interface Foo()在接口Foo上创建一个类扩展(我经纠正,为bbum的道具),就像在接口上添加了其他方法一样。 有些人也使用@interafce Foo(私有)(类别)而不是带()的类扩展。 它更像是从类外部“注入”新方法到类中。
将它放在.m文件中只是让其他东西不会在.h文件中“看到它”,但就是这样。 基本上,人们通常使用.m文件中的类别或类扩展名来指定私有接口,但它们也用于UIKit,例如,UIKit使用类别向NSIndexPath添加行和节公共方法。 (这可能会造成混淆。)
您实际上并不需要以这种方式定义私有方法,但是如果您有一个名为bar的方法,该方法在源文件中定义foo之前就调用了foo方法,那么您将得到一个编译器警告,例如“对象自身可能无法响应foo” ”。 你可以在定义bar或任何其他foo调用代码之前通过定义foo来摆脱它。 普通的C和函数相同。
就像Ole所说的那样,这不会阻止任何人调用私有方法,它只是声明您打算将它们私有化,并使编译器即使导入.h文件也生成“可能不响应”警告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.