我试图在一个Objective-c项目中加入一个快速的类。 swift类继承自UIView
,看起来像这样:
class BVDTestView: UIView {
...
}
请注意,我不包含@objc
,因为swift类继承自UIView
。在objective-c实现文件中,我导入了伞形swift头:
#import "TestApp-Swift.h"
我看到这个文件是在我构建的时候创建的,但是我没有看到任何对BVDTestView
的引用(我认为我会)。当我尝试创建swift视图的实例时,我收到错误:
BVDTestView *view = [BVDTestView new];
使用未声明的标识符'view'
有什么想法?我正在使用Xcode 6 beta 4。
答案 0 :(得分:6)
我最近碰到了这个。从Beta 4开始,Swift有access specifiers和
默认情况下,所有实体都有
internal
个访问权限。
您需要将类明确标记为public class BVDTestView ...
,以使其显示在生成的标题中。
答案 1 :(得分:0)
对于我的情况,当我创建新的基于Obj-C的项目并希望集成Swift代码时没有问题,没有像" public"有用。但是当我测试添加快速代码时,我现有的一个基于Obj-C的项目我找到了问题并通过提供" Public"类和函数中的访问说明符。
@objc public class Test: NSObject{
@objc public func test(){
println("test")
}
}