Имя первого параметра в цели c? - PullRequest
19 голосов
/ 07 января 2012

У меня есть метод:

- (void)pan:(double)lat longitude: (double) lon{...}

Когда я называю это, Xcode показывает вот так:

[self pan:(double) longitude:(double)]

Разве нельзя как-то установить первый параметр, например, второй (longitude), чтобы Xcode мог показывать так:

[self pan: latitude:(double) longitude:(double)]

Меня очень раздражает, что я не вижу имя первого параметра при вызове. Это моя вина или это невозможно?

Ответы [ 3 ]

16 голосов
/ 07 января 2012

Обычный способ сделать то, что вы просите, это объявить ваш метод следующим образом:

-(void)panLatitude:(double)lat longitude:(double)lon;

То есть включить метку для первого аргумента с именем метода в начале. Вы бы использовали это как:

[self panLatitude:x longitude:y];
10 голосов
/ 07 января 2012

Вам просто нужно назвать метод по-другому.

- (void)panToLatitude: (double)lat longitude: (double)lon;

Objective-C на самом деле не имеет именованных параметров. Имя метода (в вашем примере, а не моей версии выше) -pan:longitude: и язык использует инфиксную нотацию для передачи аргументов.

5 голосов
/ 07 января 2012

Помните, что цель-c об отправке сообщений объектам - это аргументы.Таким образом, первая часть сообщения часто содержит глагол и первый фрагмент данных.Это должно легко читаться.

Не думайте о названии метода как о "панорамировании".В C # и Java имя метода будет Pan, а args - долгота и широта.Ваш метод должен быть примерно таким.

- (void) panToLatitude:longitude:

Эта строка является именем вашей функции (сообщения).Думайте об этом как об отправке сообщения, которое является словарем, а первый элемент содержит глагол.Я тоже из C-langs, так что это другой способ мышления.

...