您对ObjC课程命名的偏好是什么?我有点不确定什么是最合理的方法,所以听听其他一些意见会很好。
Apple建议为cocoa类加前缀,因为ObjC不支持名称空间。谷歌ObjC风格指南(我主要针对的是)取消它们,除非你扩展(类别,类扩展等)一个NSClass。
我的偏好不是为课程添加前缀,因为我也认为这是浪费信件而且不会导致原因。它只应该在框架代码中用于表示此类属于它而不是应用程序的类,但我不会在应用程序级别使用它。
你的是什么,最重要的是为什么?
我的结论(请随时添加您的意见以做出最明智的决定)
应用程序级别类:
CAudioController.h
)USystemAudio.h
)框架级别类:
分类
NSClassName+ExtensionPurpose
答案 0 :(得分:22)
我的一般方法是为作为框架或可加载包的一部分的类名添加前缀,即可以在多个应用程序和其他框架之间共享的类,但不要打扰作为独立应用程序一部分出现的类。< / p>
如果史蒂夫·乔布斯给了我一个愿望,那就是在Objective-C 3.0中设置名称空间(明天可以使用)。
答案 1 :(得分:4)
Scott Stevenson对于客观C代码的外观有一个非常好的指导。查看以下链接。
http://cocoadevcentral.com/articles/000082.php
http://cocoadevcentral.com/articles/000083.php
这些链接还将回答您的问题,如何为课程命名以及原因。
答案 2 :(得分:3)
我使用前缀,即使在不会共享的应用程序代码中 - 主要是为了保持一致。我通常使用代码来源的应用程序或框架名称的2个字母的缩写,除非不同的前缀(例如,3个字母或简短的描述性单词)更有意义。
答案 3 :(得分:1)
你绝对应该为它们添加前缀。如果发生碰撞,则行为未定义。
实际发生的事情(最后我遇到了这个)是二进制文件已加载,但是如果已经加载了具有该名称的另一个(objc)类,则不会加载您的类。我会让你弄清楚当你创建这个类的实例时你会得到哪些实现;)这样的碰撞可能会导致崩溃或许多吞噬异常(和一个非功能性的应用程序)。很多开发人员使用2个大写字母,这是(所有事情都相同)26 * 26他们将使用相同的前缀。再次 - 这发生在我身上......最好是你这样做以避免以后重写很多代码。