我对有关是否使用前缀方法的说明的Apple文档有点困惑?
Apple Doc Explanation 1
:
在命名类,协议,函数,常量和typedef结构时使用前缀。命名方法时不要使用前缀;方法存在于由定义它们的类创建的名称空间中。另外,不要使用前缀来命名结构的字段
Apple Doc Explanation 2
:
如果您是一个大型Cocoa框架类的子类(例如NSView
或UIView
),并且您希望绝对确定您的私有方法的名称与超类中的名称不同,则可以添加您自己的私有方法前缀。前缀应尽可能唯一,可能基于您的公司或项目以及"XX_"
形式。因此,如果您的项目名为Byte Flogger,则前缀可能为BF_addObject
:
答案 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对象。
所以没有必要,但不这样做可能会迫使你在提交的最后一刻重构你的代码。在一个时间驱动的项目中,我甚至不会冒这个风险。