在Cocoa中命名类别方法的最佳实践

时间:2011-09-26 17:19:28

标签: cocoa naming-conventions objective-c-category

我偶然发现了两个经典编程问题之一。我正在编写一个Cocoa框架,它基本上是最常用的基础类的类别(大多数)有用的方法的集合。我的问题是如何在我的类别中为所述类命名这些额外的方法?我应该使用前缀或无前缀命名约定(例如- (void)doSomething vs - (void)myDoSomething)吗?

我在阅读Cocoa文档时不确定:

  

在命名类,协议,函数,常量和时使用前缀   typedef结构。命名方法时不要使用前缀;方法   存在于由定义它们的类创建的名称空间中。也,   不要使用前缀来命名结构的字段

并查看周五q&系列中Mike的代码示例(例如MARefCounting中的方法名称在building reference count文章中有前缀)。

1 个答案:

答案 0 :(得分:2)

我认为您引用的文档不会考虑您不拥有的课程类别。它只是试图说,如果你定义了MyClass,你也不需要为方法my_doThis命名,因为没有任何东西可以与之碰撞。

在这种情况下,使用前缀可能是最安全的。如果您没有使用前缀,Apple最终会在将来的版本中添加相同的方法,那么您的类别实现将覆盖Apple,这可能会导致意外行为。

更糟糕的是,有时候你可能会替换一个内部定义的方法(它们并不总是以_开头),这可能导致框架内部的内部不一致,使得调试问题变得更加困难。 / p>