Имя первого параметра в объекте c?
У меня есть метод:
- (void)pan:(double)lat longitude: (double) lon{...}
Когда я называю это, Xcode показывает, как это:
[self pan:(double) longitude:(double)]
Невозможно ли каким-либо образом установить первый параметр, как второй (longitude)
, что Xcode может выглядеть следующим образом:
[self pan: latitude:(double) longitude:(double)]
Мне очень неприятно, что я не вижу имя первого параметра при вызове. Это моя ошибка или это невозможно?
Ответы
Ответ 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, так что это другой способ мышления.