Cocoa:你怎么命名你的init参数不干扰ivars?

Mar*_*tin 3 iphone cocoa coding-style

让我们从一个例子开始:

@interface myClass : NSObject {
    NSString * title;
}

-(id)initWithTitle:(NSString*)title;
Run Code Online (Sandbox Code Playgroud)

编译器不喜欢这个,因为标题init参数隐藏了myClass标题ivar.

但我不喜欢这些选择:

-(id)initWithTitle:(NSString*)t;
-(id)initWithTitle:(NSString*)myTitle;
-(id)initWithTitle:(NSString*)_title;
Run Code Online (Sandbox Code Playgroud)

这是一项民意调查:你的惯例是什么?

Dru*_*erB 6

有些人喜欢把他们的实例变量_titletitle_然后他们可以只使用title作为参数名的功能.或者你只是称之为aTitlenewTitle.没有正确或错误的方法.

  • 不必要.使用`@prototype(nonatomic,copy)NSString*title;`然后`@synthesize title = _title;`. (6认同)