xCode 4.2, iPhone 3.1.3, UITapGestureRecognizer, setNumberOfTapsRequired, нераспознанный селектор

Я пытаюсь запустить xCode 4.2 на iPhone 3.1.3. Мой быстрый вопрос:

  • Есть ли способ заставить эту функцию работать?

    UITapGestureRecognizer *gestureSingleTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(didSingleTap:)];
    [gestureSingleTap setNumberOfTapsRequired:1];
    [taskScrollView addGestureRecognizer:gestureSingleTap];
    [gestureSingleTap release];    
    
  • Ошибка, которую я получаю во время выполнения, такова:

    -[UITapGestureRecognizer setNumberOfTapsRequired:]: unrecognized selector sent to instance 0x143170
    

Мои вопросы:

  • Есть ли способ решения этой проблемы в iOS3.1.3, который прост и не требует перезаписи большого количества кода?
  • Можно ли каким-то образом "расширить" функцию для перенаправления на эквивалент 3.1.3 для обратной совместимости?

Большое спасибо!

Добавлено примечание: обнаружено, что некоторые функции считаются «частными» и не полностью функциональными до их фактических выпусков. Вероятно, это моя основная проблема. Если у кого-то есть библиотека обратной совместимости, мне было бы интересно ее использовать.


person BoxCat    schedule 05.02.2012    source источник
comment
Добавлено примечание: я много копал. Похоже, 3.1.3 не считается iOS 3.2. Базовыми функциями являются эти функции для версии 3.1.3, но Apple считает их недокументированными функциями в версии 3.1.3. Они полностью представились в iOS 3.2.   -  person BoxCat    schedule 07.02.2012
comment
Я собираюсь оставить вопрос открытым, потому что может быть способ обойти это или расширение класса, которое дополняет недостающую функциональность в 3.1.3. Очень заинтересован в обратном расширении классов, таких как UITapGestureRecognizer + 3.1.3compatibility.h   -  person BoxCat    schedule 07.02.2012
comment
На данный момент я могу обойти проблему, понизив версию xCode до 4.0.2, используя для разработки iPhone 3G (4.2.1) вместо iPhone 2G (3.1.3).   -  person BoxCat    schedule 07.02.2012


Ответы (1)


Посмотрите на метод didSingleTap:

Неужели после него стоит точка с запятой и можно ли использовать аргумент? (также правильно ли он написан, и действительно ли ваш класс определяет этот метод?)

Если didSingleTap не принимает аргументов, он должен быть @selector(didSingleTap) (без двоеточия после didSingleTap).

Обновление: предыдущий ответ был неправильным. Свойства определяют методы установки / получения.

person Michael Chinen    schedule 05.02.2012
comment
Привет, Майкл! Спасибо, но ошибка все равно остается прежней. Я считаю, что свойство внутренне переводит его в setNumberOfTapsRequired. Вот новый код: gestureSingleTap.numberOfTapsRequired = 1; Вот ошибка: - [UITapGestureRecognizer setNumberOfTapsRequired:]: нераспознанный селектор отправлен в экземпляр - person BoxCat; 06.02.2012
comment
Хорошо, я обновил свой ответ. Теперь я понимаю, что нераспознанный селектор не setNumberOfTapsRequired. - person Michael Chinen; 06.02.2012