(NSString *)名称是什么意思?

时间:2013-04-23 02:14:07

标签: objective-c

我正在阅读一本Objective-C书来学习,并且遇到了一个我并不特别认识的符号: 在标题中创建一个指向“name”的指针作为实例变量。

NSString *name;

然后,在其中一个函数声明中,它说:

-(id)initWithName:(NSString*)name atFrequency:(double)freq;

我知道这是一个名为initWithName:atFrequency:的实例方法,但我不理解参数(NSString*)name的含义。 任何帮助他都会非常感激!

1 个答案:

答案 0 :(得分:1)

name这两件事完全没有关系。正如您所说,一个(第一个)是一个实例变量。另一个是方法参数,是对方法调用中提供的第一个参数的本地引用。所以,如果有人说过

[[MyClass alloc] initWithName:@"howdy" atFrequency:2];

然后在<{1}}方法的正文内部,会有一个变量initWithName:atFrequency:,其值为name(和变量@"howdy"freq)。

然而,这令人不悦。您的局部变量使实例变量蒙上阴影。这是不明智的,事实上我希望编译器发出警告。