Почему рекомендуется использовать метку вместе с параметром функции - PullRequest
0 голосов
/ 27 февраля 2012

Мне было интересно, что такое реальная выгода, чтобы иметь метку вместе с параметром функции. Насколько я знаю, следующим образом

Не рекомендуется

-(void) insertObject:(id)anObject:(unsigned int)index

Рекомендуется

-(void) insertObject:(id)anObject atIndex:(unsigned int)index

Кроме того:

  1. Включить перегрузку функций, что еще?

Ответы [ 2 ]

5 голосов
/ 27 февраля 2012

Это не включает перегрузку функции.Obj-C не имеет перегрузки функций.Он правильно называет метод.Ваш первый метод называется -insertObject::, а второй - -insertObject:atIndex:.В то время как оба технически работают, первый считается крайне плохой формой, особенно если вы добавляете еще больше параметров, например, -doSomething::::.

Одним из часто упоминаемых преимуществ Obj-C является метод именования, позволяющийпонять, что делает код, прочитав его, не обращаясь к документации.Например, если у меня есть

[self initWithName:@"foo" andAge:13]

, то сразу видно, что это за параметры, но если у меня было

[self init:@"foo" :13]

, тогда совершенно не очевидно, что эти параметры должны представлять.

Это также помогает, когда у вас есть методы с одинаковыми именами.Например, NSKeyValueCoding определяет как -setValue:forKey:, так и -setValue:forUndefinedKey:.Совершенно очевидно, что если бы оно было названо -setValue::, то здесь произошло бы столкновение.

5 голосов
/ 27 февраля 2012

Потому что использование меток параметров делает вызов функции более похожим на английское предложение, а не на магическое заклинание.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...