Я конвертирую приложение Objective-C в Swift и используя существующие тестеры Objective-C для подтверждения того, что изменения работают исправно.Быстрые классы внутри Objective-C unit test - Неполное сгенерированное «-Swift.h»
я заменил пару Objective-C файлов приложений с Swift и сделал следующее:
- добавил «@objc класс», где это необходимо (в дополнение к наследованию из класса Objective-C),
- нацелил файлы Swift на цели MyApp и MyAppTest,
- установить «Включить тестируемость да» (только для отладки) для обеих целей.
- В тестовых файлах модулей я добавил #import «MyAppTests-Swift.h» и удалил #import «MyObjcClass.h».
- Я также удалил «MyObjcClass.m» из списка источников компиляции фазы сборки.
Xcode создает файл «MyAppTests-Swift.h». Изучив сгенерированный файл (cmd-click), вы увидите обычную массу Swift, определенную #if #defines, которая предшествует тому, где мои классы Swift должны быть расположены, но нет.
Приложение будет создавать и работать нормально с заменой файлов Swift. В приложении есть другие файлы Objective-C, которые импортируют «MyApp-Swift.h, чтобы использовать мои классы Swift». Файл MyApp-Swift.h содержит обычную массу Swift определенных #if #defines и моих классов Swift из файлов приложений Swift.
Xcode генерирует файлы «-Swift.h» для обеих целей. По какой-то причине, тем не менее, тот, который предназначен для целевого теста, не получает информацию о классе Swift, в то время как та, которая предназначена для целевого приложения. Поэтому не проблема использования функции, характерной для Swift, но не Objective-C.
У меня есть устранили все ошибки компиляции, построенный из чистой, но до сих пор не работает.
Любые предложения?
Я использую XC7 (7C68) IOS 9.1