Меняет ли использование параметров в методах что-либо в функции метода? - PullRequest
0 голосов
/ 25 августа 2011

Я пытался найти в Google и на этом сайте мой вопрос, но не нашел ответа.

Я новичок в Obj-C и хотел бы получить ответ на этот вопрос.

В чем преимущество использования параметров в моих методах.

например ..

 -(id)initWithName:(NSString *)newName atFrequency:(double)newFreq { 
self = [super init]; 
if (self != nil) {
name = newName; 
frequency = newFrequency;
} 
return self;
}

против

 -(void)myMethod {
self = [super init];
if (self != nil) {
name = newName;
frequency = newFrequency;
}
return self;
}

Я понимаю, что - (void) означает, что метод не имеет возвращаемого типа, а - (id) означает, что первый метод имеет «id» в качестве возвращаемого типа, а «id» является общим ...

Может кто-нибудь помочь объяснить? Я надеюсь, что мой вопрос имеет смысл, спасибо всем за вашу помощь.

1 Ответ

0 голосов
/ 25 августа 2011

Параметры являются входными данными для метода, как и параметры функции / метода на любом языке. Во втором примере в строке frequency = newFrequency; откуда взято newFrequency?

На других языках, где у вас может быть что-то вроде

void initWithName(string newName, double newFreq);

В Obj-C эквивалент равен

<a href="/1318006/v-chem-raznitsa-mezhdu-metodami-klassa-i-ekzemplyara">-</a> (void)initWithName:(NSString *)newName atFrequency:(double)newFreq;

Разница в том, что в Obj-C есть дополнительный фрагмент имени метода для каждого параметра (например, atFrequency) - в этом случае имя метода равно initWithName:atFrequency:, не только initWithName:.

(Это на самом деле необязательно, для каждого параметра требуется только :. Технически initWithName:: все еще является допустимым именем метода, но это не считается хорошей практикой в ​​Obj-C.)

Смотри также:

...