2009-12-24 3 views
2
-(void) alertView: (UIAlertView *) alertView 
     clickedButtonAtIndex: (NSInteger) buttonIndex { 
     // do stuff 
     // if you want the alert to close, just call [ alertView release ] 
} 

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

MethodName: ReturnedType: InputType - это право?

ответ

4

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

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

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

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

Для получения информации по этому конкретному методу, проверить this document.

1

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

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

3

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

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

-(void)methodName; 

подпись имяМетода.

Способ 1 аргумент:

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

подписи имяМетод :.

Способ с 2 аргументами

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

подписью имяМетод: andArgumentType2:

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

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

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

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

0

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

Аналогично:

void someMethod(int i, int j){} 

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

0

При написании моего Objective-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 ] 
} 
Смежные вопросы