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, ошибка исчезла.