Подтвердить что ты не робот

Имя первого параметра в объекте c?

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

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

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

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

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

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

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

4b9b3361

Ответ 1

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

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

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

[self panLatitude:x longitude:y];

Ответ 2

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

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

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

Ответ 3

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

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

- (void) panToLatitude:longitude:

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