Objective C约定:何时使用For和何时使用With

How*_*ard 9 iphone xcode cocoa objective-c ios

根据Apple 指南,似乎令人困惑,例如方法viewWithTag

在Java中,我会有一个名为的方法

getViewByTag // Java version, equivalent to viewWithTag in Obj-C
Run Code Online (Sandbox Code Playgroud)

但我也发现有一些方法objectForKey,所以为什么不用objectWithKey而不是呢?

getObjectByKey or just get // Java version, equivalent to objectForKey, 
                           // but why not objectWithKey? Or not viewForKey above?
Run Code Online (Sandbox Code Playgroud)

Maz*_*yod 5

我实际上认为它比大多数答案想象的要简单得多.我认为它与复杂的编程语言细节关系不大,而且更多地与所讨论的对象的唯一性有关.

当你说viewWithTag:,你所要求的UIView任何有该标签视图.可能有几个.在UIView返回的"时间之一.

但是,objectForKey:(对我来说)听起来应该有一个与该键相关联的单个对象(或零).因此,关键类型存在并且绑定(紧密耦合)到单个对象.

编辑:

有一个答案提到"by"的存在,这进一步暗示了约定如何与编程语言的复杂性无关.这只是天生的英语.

NSStringstringByAppendingString:,例如,使用由,仅因为该函数与一个动词写入追加.你不能用附近说,这是糟糕的英语.


Vim*_*lan 3

据我观察

在设置/获取对象时,您可以使用WITH

例如用于设置 NSMutableArray 对象

 - (id)initWithCapacity:(NSUInteger)numItems
Run Code Online (Sandbox Code Playgroud)

在设置/获取对象的属性时,您可以使用 FOR

例如用于设置 NSMutableDictionary 类型的属性值

- (void)setValue:(id)value forKey:(NSString *)key
Run Code Online (Sandbox Code Playgroud)

希望这有助于消除您的疑虑