在Objective-C中包含Swift文件

时间:2014-07-24 20:02:09

标签: ios objective-c swift ios8 xcode6

我试图在一个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。

2 个答案:

答案 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")
}

}