Сбой сборки Interface Builder в смешанном проекте Swift / Objective-C - PullRequest
0 голосов
/ 15 мая 2019

У меня довольно сложная ситуация, которая будет лучше с помощью.

  • Это приложение для iOS со смешанным Swift и Objective - C.
  • Подклассы классов Objective C только из классов Objective C.
  • У меня есть один класс Swift с именем SettingsViewController.swift, который расширяется от класса библиотеки Swift, называемого QuickTableViewController. QuickTableViewController - это фреймворк, установленный через Carthage. https://github.com/bcylin/QuickTableViewController.

После настройки я получаю сообщение об ошибке сборки при переходе к «Main.storyboard». Я все еще могу запустить приложение, но я не вижу свои IBDesignables в Интерфейсном Разработчике. Ошибка сборки отображается в выходных данных (рисунок 1) и показывает «Сбой» на главной панели состояния - со значком предупреждения (рисунок 2).

Рисунок 1 Failure message Figure 1

Рисунок 2 Failure message Figure 2

Трассировка ошибки приводит к строке импорта заголовка моста в моих *. M файлах Objective-C :

#import "TestApp-Swift.h"

Итак ... У меня есть контроллер представления Objective-C (* .m), который создает представление SettingsViewController.swift, но он выдает эту ошибку. Я не делаю подклассы из swift, просто использую соединительный заголовок в view.m и проект, который имеет swift-представление, которое подклассов класса swift.

Вот как я создаю SettingsViewController для навигации в моем файле .m:

UIViewController *settingsVC = [self.storyboard instantiateViewControllerWithIdentifier:@"SettingsTableViewController"];

if (settingsVC) {
    [self.navigationController pushViewController:(UIViewController*)settingsVC animated:true];
}
else {
    NSLog(@"ERROR, Could not segue to Settings Table View.");
}

Любая помощь сделает меня счастливым. Интерфейсный Разработчик должен счастливо показать мои IBDesignables и продолжать работать, если я использую библиотеки Swift для представлений в этом смешанном проекте.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...