【发布时间】:2011-07-28 18:37:24
【问题描述】:
命名方法的 Apple 风格指南都说“不要使用“和”来链接作为接收者属性的关键字。”和“如果该方法描述了两个单独的操作,请使用“和”来链接它们。”在许多情况下,这些条件都不适用。例如,假设我有一个函数可以做一些工作,并在完成后调用目标上的选择器。是否应该命名
- (void)findObjectsInBackgroundWithTarget:(id)target andSelector:(SEL)selector;
或者应该这样命名
- (void)findObjectsInBackgroundWithTarget:(id)target selector:(SEL)selector;
在那个例子中,选择器和目标是相关的,但不是通过作为接收器的属性。类似的示例是检索具有特定属性的对象,但该对象不是方法的接收者。这个函数应该是
+ (Thing *)getThingWithName:(NSString *)name andId:(NSString *)thingId;
或者应该命名
+ (Thing *)getThingWithName:(NSString *)name id:(NSString *)thingId;
我知道这似乎是一件小事,但使用每个人都期望的风格很好。
【问题讨论】:
-
这不是答案,所以我将其作为评论留下。我认为对于目标/选择器示例,很多库中的选择器参数称为“动作”。但这并不会使您的问题作为一般观点无效。
-
我认为目标/动作词汇主要用于以 UI 为中心的代码(例如,大量用于 NS/UIResponder 和 NS/UIControl)。选择器似乎适合上述回调行为(例如,在 NSNotification 中)。
-
既然你问的是方法名风格:
get...在Cocoa中有特定的含义;它不用于一般的“getter”方法,而仅用于采用指针指针并通过引用返回对象的方法。参见,例如,[NSArray getObjects:range:]。
标签: objective-c coding-style methods naming-conventions naming