我有一个Swift项目,我在其中添加了一个带有UIView
自定义子类的框架目标,因此我可以在Xcode 6中的Interface Builder中使用新的实时视图。但是当我尝试添加{{1}时在我项目的@IBOutlet
子类中,我得到了一个“使用未声明的类型'MyCustomView'”错误,我无法构建我的项目。
这是来自UIViewController子类的代码:
UIViewController
这就是'MyCustomFramework'目标中的'MyCustomView.swift':
import UIKit
import MyCustomFramework
class MyViewController: UIViewController {
@IBOutlet var myCustomView: MyCustomView?
}
任何人都知道我忘记了什么?我是以错误的方式导入的吗?我错过了什么吗?
答案 0 :(得分:36)
您应该将该类标记为public
,因为它是不同框架模块的一部分
@IBDesignable public class MyCustomView: UIView {
}
默认情况下,类和方法的访问级别为internal
。如果您想使用该目标的那一侧,则应将其标记为公开。然后它只是公共接口的一部分(在目标之外可见)
答案 1 :(得分:1)
在另一个项目B中导入自定义框架A后,我遇到了同样的错误,甚至我的所有类都是公开的。
我通过将Build Active Architecture中自定义框架A的Building设置更改为No而不是Yes,然后清除编译,并在删除旧框架后再次重新导入框架来解决它。
然后一切都成功编译。