繁体   English   中英

哪个是在Objective-C中为类定义私有方法的最佳方法?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM