Импорт Swift в Swift: "Использование необъявленного типа" MyCustomView "
У меня есть проект Swift, в котором я добавил цель рамки с пользовательским подклассом UIView
, поэтому я могу использовать новый просмотр в режиме реального времени в Interface Builder в Xcode 6. Но когда я пытаюсь добавить @IBOutlet
в мой UIViewController
в моем проекте, я получаю "Использование необъявленного типа" MyCustomView ", и я не могу создать свой проект.
Здесь мой код из подкласса UIViewController:
import UIKit
import MyCustomFramework
class MyViewController: UIViewController {
@IBOutlet var myCustomView: MyCustomView?
}
И вот что означает "MyCustomView.swift" в мишени "MyCustomFramework":
import UIKit
@IBDesignable class MyCustomView: UIView {
@IBOutlet var imageView: UIImageView?
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
}
Кто-нибудь знает, что я забыл? Я импортировал его неправильно? Я что-то пропустил?
Ответы
Ответ 1
Вы должны пометить класс как public
, поскольку он является частью другого фрейм-модуля
@IBDesignable public class MyCustomView: UIView {
}
По умолчанию классы и методы будут находиться на уровне доступа internal
. Если вы хотите использовать эту сторону этой цели, вы должны пометить ее как общедоступную. Тогда только это будет часть открытого интерфейса (видимая вне цели)
Ответ 2
Я столкнулся с такой же ошибкой после импорта моей пользовательской структуры A внутри другого проекта B, даже все мои классы были общедоступными.
Я решил это, изменив настройки здания моей пользовательской структуры A в Build Active Architecture только на No вместо Yes, затем очистив компиляцию и reimport фреймворк снова после удаления старого.
Затем все скомпилировано успешно.
Ответ 3
Я сталкиваюсь с той же проблемой с общественным классом Даже Build Active Architecture установлен на Нет. Проводное поведение. Я не знаю, как решить это.