что-то: что-то: что-то метод Format? - PullRequest
2 голосов
/ 24 декабря 2009
-(void) alertView: ( UIAlertView *) alertView 
         clickedButtonAtIndex: ( NSInteger ) buttonIndex {
      // do stuff
      // if you want the alert to close, just call [ alertView release ]   
}

Может кто-нибудь объяснить этот метод? Я привык к методам, подобным "- (IBAction) buttonPress: (id) sender", но у этого есть три Что означает каждый из них?

MethodName: ReturnedType: InputType это правильно?

Ответы [ 5 ]

4 голосов
/ 24 декабря 2009

Это на самом деле:

-(return type) methodName:(param1 type)param1 moreMethodName:(param2 type)param2

и т. Д., С таким количеством параметров, как вы хотите. Так что этот метод называется alertView:clickedButtonAtIndex: - в него просто встроены его параметры. На более «нормальном» языке это эквивалент alertViewClickedButtonAtIndex(UIAlertView *alertView, NSInteger buttonIndex)

Для довольно хорошего учебника по синтаксису Obj-C, проверьте: http://www.cocoadevcentral.com/d/learn_objectivec/

Для получения информации об этом конкретном методе, посмотрите этот документ .

3 голосов
/ 24 декабря 2009

Методы Objective-C с аргументами:

Метод без аргументов:

-(void)methodName;

Подпись methodName.

Метод с 1 аргументом:

-(void)methodName:(ArgumentType *)anArgument;

Подпись methodName:.

Метод с 2 аргументами

-(void)methodName:(ArgumentType1 *)argument1 andArgumentType2:(ArgumentType2 *)argument2;

Подпись является methodName: andArgumentType2:

Таким образом, этот метод является методом с двумя аргументами: объект UIAlertView и NSInteger (не объект, просто синтаксический сахар для int или long в зависимости от вашей системы).

UIAlertView - это представление предупреждений, делегат которого был установлен для объекта этого класса. Обычно устанавливается при создании представления оповещения.

ButtonIndex - это индекс кнопки в UIAlertView, к которой прикоснулся пользователь. Этот метод вызывается при нажатии этой кнопки. По умолчанию ничего не делается, и предупреждение просто исчезает.

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

1 голос
/ 24 декабря 2009

Это реализация метода протокола делегата.
Вы можете найти некоторые подробности об этом шаблоне на iPhone Dev Central .

Класс, реализующий этот метод, действует как делегат UIAlertView.
Таким образом, вы можете настроить поведение экземпляра класса без создания подклассов.

0 голосов
/ 24 декабря 2009

Когда я пишу свою цель-C, я предпочитаю форматировать метод следующим образом, так как я думаю, что это делает разделение возвращаемого типа и параметров более четким:

-(void)                                          // return type
alertView:(UIAlertView *) alertView              // param1
clickedButtonAtIndex:(NSInteger) buttonIndex     // param2
{
      // do stuff
      // if you want the alert to close, just call [ alertView release ]   
}
0 голосов
/ 24 декабря 2009

Это метод с двумя входными аргументами.

Аналогично:

void someMethod(int i, int j){}

Всегда хорошая идея - взять книгу и понять основы правильно, а не учиться по частям. Поверь мне:)

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