Форум программистов, компьютерный форум, киберфорум
Наши страницы
Objective-C
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
lowlol
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102
#1

Селектор и аргумент функции

19.10.2014, 02:55. Просмотров 916. Ответов 6
Метки нет (Все метки)

Objective-C
1
UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(scrollViewTouched:)];
Objective-C
1
2
3
4
- (void)scrollViewTouched:(UITapGestureRecognizer *)gesture
{
    NSLog(@"touch at %f", [gesture locationInView:imageGallery].x);    
}
Запутался с данной конструкцией.
self в первой строке указывает на tap?
откуда scrollViewTouched берет аргументы?
и как это все в целом работает "под капотом"?

Заранее спасибо
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.10.2014, 02:55
Ответы с готовыми решениями:

Селектор или диспатчер
Добрый вечер! Есть метод myMethod. Его можно вызвать в фоновом потоке двумя...

Ошибка в таймере, или неправильно вызываю селектор?
- (IBAction)start:(id)sender { ; randomTime = ; ...

Вычислить значение функции аргумент которой вычисляется из другой кусочно заданной функции
Решите программу то я не знаю как:hysteric: Вычислить значение y в зависимости...

Аргумент функции
можно ли представить аргумент функции в следующем виде: \arg...

Аргумент функции
Помогите записать в нормальном виде, то есть через арктангенсы и углы....

6
residentkms
21 / 21 / 8
Регистрация: 20.10.2013
Сообщений: 138
Завершенные тесты: 1
19.10.2014, 07:42 #2
Цитата Сообщение от lowlol Посмотреть сообщение
Запутался с данной конструкцией.
self в первой строке указывает на tap?
откуда scrollViewTouched берет аргументы?
и как это все в целом работает "под капотом"?
Заранее спасибо
self указывает на класс в котором реализован метод селектора.
На счёт откуда берутся аргументы, самому интересно.
Вероятно, этот метод объявлен в каком то протоколе.
0
noname_club
105 / 96 / 12
Регистрация: 01.05.2013
Сообщений: 603
19.10.2014, 10:43 #3
откуда scrollViewTouched берет аргументы?
UITapGestureRecognizer вызывает под капотом

Objective-C
1
 [_target peformSelector:_action withObject: self]; // где self = UITapGestureRecognizer
0
lowlol
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102
19.10.2014, 14:04  [ТС] #4
residentkms, мб на экземпляр класса?
P.S метод я писал сам и ни в каком протоколе он не объявлен

Добавлено через 1 минуту
noname_club, откуда этот код?
0
noname_club
105 / 96 / 12
Регистрация: 01.05.2013
Сообщений: 603
19.10.2014, 14:05 #5
откуда этот код?
Из под капота
0
lowlol
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102
19.10.2014, 18:50  [ТС] #6
noname_club, не могли бы вы пошагово расписать что, в какой момент и откуда вызывается, начиная с тапа?
0
Melzas
38 / 38 / 6
Регистрация: 20.07.2011
Сообщений: 88
21.10.2014, 12:12 #7
Лучший ответ Сообщение было отмечено lowlol как решение

Решение

Цитата Сообщение от lowlol Посмотреть сообщение
self в первой строке указывает на tap?
В методе объекта (который начинается с -) self всегда указывает на самого себя (на текущий объект). В методе класса (начинается с +) self указывает непосредственно на класс.

Цитата Сообщение от lowlol Посмотреть сообщение
откуда scrollViewTouched берет аргументы
Все наследники UIControl и UIGestureRecognizer передают события, отправляя себя в качестве аргумента по конвенции. Т.е. селектор для реакции на событие всегда выглядит как:
Objective-C
1
-(void)onAction:(id)sender
id можно заменить на нужный класс, при необходимости.
Цитата Сообщение от lowlol Посмотреть сообщение
не могли бы вы пошагово расписать что, в какой момент и откуда вызывается, начиная с тапа?
Тут особо и расписывать нечего. При тапе внутри UITapGestureRecognizer проходит по всем target и вызывает на них переданный селектор (в этом случае scrollViewTouched: ), передавая себя в качестве аргумента. Код есть выше, только выполняется он в цикле, так как целей может быть несколько.
1
21.10.2014, 12:12
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2014, 12:12

Аргумент функции.
Дано значение функции sin(x).вычислить главное значение аргумента этой функции...

Не читается аргумент функции
void recursReverse(char* str, size_t len) { static size_t len2 = len; ...

Безымянный аргумент функции
Возможно ли в Си создать функцию с безымянным аргументом? На void test(int){}...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru