2015-07-16 2 views
0

У меня есть ряд целей в моем проекте, каждый из которых использует одну и ту же раскадровку, но только с выбором классов, связанных с ней. Обычно Xcode не жалуется, по крайней мере, это не на версию iPhone, ни на большинство целей. Тем не менее, конкретная жалоба касается двух конкретных классов:Цель без некоторых классов сцен в раскадровке

Неизвестный класс ****** в файле Interface Builder.

Неизвестный класс $$$$$$ в файле Interface Builder.

Несмотря на то, что в раскадровке много других сцен, класс которых не включен в цель, даже в этом конкретном случае.

Это происходит, только когда я запускаю приложение на iPad (симулятор), и через некоторое время он падает на UIApplicationMain; Я не знаю, связаны ли эти две вещи.

Есть ли способ, которым Xcode решает проверить некоторые сцены раскадровки и некоторые другие, а не на существование соответствующего класса?

ответ

0

Проблема в том, что Swift основан на модуле. Каждая цель - это модуль. Класс определен в определенном модуле и помещается в этот модуль.

Таким образом, ViewController в MyFirstTarget отличается от ViewController в MySecondTarget - это MyFirstTarget.ViewController и MySecondTarget.ViewController.

Если вы посмотрите в инспекторе Identity раскадровки, вы увидите, что на самом деле он сообщает вам, какой модуль он считает, к чему принадлежит этот класс. Таким образом, он может стать смертельно путаным, если этот модуль отсутствует, когда нагрузок загружается.

0

Проще говоря, я представил SplitView в других целях, которые не были использованы в объекте, и когда он попытался отобразить его в качестве сцены входа, он разбился. По сути, неизвестные классы были отображены в главном контроллере вместе с разделенным представлением.

Я исправил проблему путем дублирования раскадровки iPad, чтобы иметь один с Splitview, а другой без него.

Смежные вопросы