Xcode 6 GM, симулятор iPhone 6, не видно @interface для "UITapGestureRecognizer" объявляет селектор "initWithTarget: action: '
UIPanGestureRecognizer *pan = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(panGestureRecognized:)];
Этот код может компилироваться для любого симулятора в Xcode 5,
но в Xcode 6 он может компилироваться только для симуляторов с 32-битными процессорами (iPhone 5 и ниже),
при компиляции для симуляторов с 64-битными процессорами (iPhone 5s, iPhone 6, iPhone plus) компилятор говорит:
no visible @interface для 'UITapGestureRecognizer' объявляет selector 'initWithTarget: действие:'
Но я импортировал <UIKit/UITapGestureRecognizer>
В чем проблема?
Ответы
Ответ 1
Сначала попробуйте Product
> Clean
меню (т.е. command + shift + k)
Если это не поможет, с помощью клавиши option Product
> Clean Build Folder...
(т.е. option + command + shift + k).
Наконец, удалите все производные каталоги данных с помощью rm -rf ~/Library/Developer/Xcode/DerivedData/
.
Я думаю, что ~/Library/Developer/Xcode/DerivedData/ModuleCache/*
, созданный с помощью старого (Xcode5) SDK, вызывает эту проблему.
Ответ 2
Для меня это началось, когда я обновился до xCode GM и только тогда, когда выбран симулятор 5, 6, 6+. Все остальные в порядке.
Удаление ~/Library/Developer/Xcode/DerivedData/ModuleCache разрешило это для меня
Ответ 3
Я удалил свой пакет Xcode 5 и перезапустил свой Mac, а затем волшебным образом он работает сейчас, но я все еще не знаю причины.
Ответ 4
Ни один из вышеперечисленных трюков для очистки кэша не помог. Но когда я изменил цель развертывания на менее чем iOS 8.1, ошибка исчезла.