Форум программистов, компьютерный форум CyberForum.ru

Objective-C

Войти
Регистрация
Восстановить пароль
 
lowlol
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102
#1

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

19.10.2014, 02:55. Просмотров 793. Ответов 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 берет аргументы?
и как это все в целом работает "под капотом"?

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

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

Аргумент функции - Математический анализ
Помогите записать в нормальном виде, то есть через арктангенсы и углы. arg({e}^{-2ix}), x\in R

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

Аргумент функции - ТФКП
можно ли представить аргумент функции в следующем виде: \arg \left(\frac{2000}{1+j\left(\frac{20-x}{100} \right)} \right)=-\arctan \left(...

Непонятный аргумент функции - C++
Кто-нибудь может подсказать, что принимает такая функция в качестве аргумента? void foo(int (**i)(double)) { ..... }

Не читается аргумент функции - C++
void recursReverse(char* str, size_t len) { static size_t len2 = len; while (len2 > 1) { std::swap(*str, *(str + len2 - 1)...

Безымянный аргумент функции - C++
функция принимает аргумент, но у него нет имени void f(int) { cout << "Hello world!"; } int main() { int n =...

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

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

Добавлено через 1 минуту
noname_club, откуда этот код?
noname_club
102 / 90 / 9
Регистрация: 01.05.2013
Сообщений: 583
19.10.2014, 14:05     Селектор и аргумент функции #5
откуда этот код?
Из под капота
lowlol
2 / 2 / 2
Регистрация: 02.12.2012
Сообщений: 102
19.10.2014, 18:50  [ТС]     Селектор и аргумент функции #6
noname_club, не могли бы вы пошагово расписать что, в какой момент и откуда вызывается, начиная с тапа?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.10.2014, 12:12     Селектор и аргумент функции
Еще ссылки по теме:

Передача функции в аргумент - C++
Есть три функции: void MainMenu(); void MainMenu_MilkMenu(); bool ErrorMenu(void (*pf)()); Все прототипы находятся в...

Безымянный аргумент функции - C (СИ)
Возможно ли в Си создать функцию с безымянным аргументом? На void test(int){} компилятор ругается "error: parameter name omitted". На void...

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

Опциональный ссылочный аргумент функции - C++
Некоторые аргументы функции можно сделать опциональными, просто поставив значение по умолчанию, а затем проверяя, изменилось ли оно : ...

Массив как аргумент функции - Алгоритмы
Добрый день. Возникла следующая проблема - необходимо передать функции в виде аргумента сразу целый массив. В идеале получить как рез-т...


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

Или воспользуйтесь поиском по форуму:
Melzas
38 / 38 / 4
Регистрация: 20.07.2011
Сообщений: 88
21.10.2014, 12:12     Селектор и аргумент функции #7
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от lowlol Посмотреть сообщение
self в первой строке указывает на tap?
В методе объекта (который начинается с -) self всегда указывает на самого себя (на текущий объект). В методе класса (начинается с +) self указывает непосредственно на класс.

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

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