Cocoa:如何为初始化参数命名,以避免干扰实例变量?

3

让我们以一个例子开始:

@interface myClass : NSObject {
    NSString * title;
}

-(id)initWithTitle:(NSString*)title;

编译器不喜欢这样做,因为“title”初始化参数会遮盖“myClass”类的“title”实例变量。但我不喜欢这些选项:
-(id)initWithTitle:(NSString*)t;
-(id)initWithTitle:(NSString*)myTitle;
-(id)initWithTitle:(NSString*)_title;

这是一项调查:你的约定是什么?

3个回答

6

有些人更喜欢将他们的ivars命名为_titletitle_,这样他们就可以在函数中使用title作为参数名称。或者您可以将其命名为aTitlenewTitle。没有正确或错误的方法。


感谢您的回答。但是,如果我将我的ivar设置为属性,我将通过myClass._title进行访问...不太喜欢这样。 - Martin
6
不一定。使用 @prototype (nonatomic, copy) NSString *title; 然后 @synthesize title = _title; - DrummerB

3

我更喜欢使用-(id)initWithTitle:(NSString *)aTitle;方法。


2

我目前使用pTitle,但是之前用了几年的是inTitle


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接