iOS中的方法是必需的前缀吗?

时间:2014-11-03 09:18:50

标签: ios objective-c iphone ios7 methods

我对有关是否使用前缀方法的说明的Apple文档有点困惑?

Apple Doc Explanation 1

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

Apple Doc Explanation 2

如果您是一个大型Cocoa框架类的子类(例如NSViewUIView),并且您希望绝对确定您的私有方法的名称与超类中的名称不同,则可以添加您自己的私有方法前缀。前缀应尽可能唯一,可能基于您的公司或项目以及"XX_"形式。因此,如果您的项目名为Byte Flogger,则前缀可能为BF_addObject

3 个答案:

答案 0 :(得分:1)

对于包含与项目相关的故事情节/内容的类,不需要前缀。

但是如果我们通过扩展实例中给出的几个方法来使用Apple Classes,比如UIView到MBView,那么我们应该为私有类中的私有方法(在.m文件中)添加前缀。

答案 1 :(得分:1)

这是因为ObjC不支持namespaces。相反,你应该使用大写字母前缀(正如你在文档中正确阅读)。你可以阅读this讨论为什么要使用它们。

请注意,Apple使用两个字母的前缀(UI(View),NS(String)等),并建议程序员使用3个字母的前缀。

答案 2 :(得分:0)

我认为你应该尽可能使用前缀,这可以成为一种很好的做法,你可以通过名字来识别你正在玩的大软件的哪一部分。

假设你的程序名是 Byte Flogger ,那么你的所有课程应该从以下开始:

BF前缀。以BFBaseList为例,如果您想在将应用程序提交到AppStore时防止拒绝,那么为方法bfMyMethodName命名也是一种很好的做法,这样您仍然可以尊重CamLCase命名约定。

因此,对于图片,您可以将属性命名为bfContentMode,而不会被 Apple 怀疑使用一个私有API功能。

现在,让我们说你处理一些模块,核心模块,网络模块等...... 如果您的班级名称为BFCObject,则可以知道您正在使用该计划的Core对象。

所以没有必要,但不这样做可能会迫使你在提交的最后一刻重构你的代码。在一个时间驱动的项目中,我甚至不会冒这个风险。