在Swift中导入Swift框架:"使用未声明的类型' MyCustomView'"

时间:2014-07-25 12:10:10

标签: ios frameworks swift

我有一个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?

}

任何人都知道我忘记了什么?我是以错误的方式导入的吗?我错过了什么吗?

2 个答案:

答案 0 :(得分:36)

您应该将该类标记为public,因为它是不同框架模块的一部分

@IBDesignable public class MyCustomView: UIView {

}

默认情况下,类和方法的访问级别为internal。如果您想使用该目标的那一侧,则应将其标记为公开。然后它只是公共接口的一部分(在目标之外可见)

答案 1 :(得分:1)

在另一个项目B中导入自定义框架A后,我遇到了同样的错误,甚至我的所有类都是公开的。

我通过将Build Active Architecture中自定义框架A的Building设置更改为No而不是Yes,然后清除编译,并在删除旧框架后再次重新导入框架来解决它。

然后一切都成功编译。