无法在Swift中创建Objective-C类的实例

时间:2018-02-10 23:15:33

标签: objective-c swift

我有一个用Objective-C编写的类,我试图在Swift中创建它的对象。我已将导入添加到桥接头并可以创建一个对象但是一旦我尝试调用方法init或任何其他方法,我就会收到错误。

这是Objective-C中的类:

@interface switchWrapperWrapper: NSObject {
    struct switchWrapper *switchwrapper;
}

- (id)init;

- (void)dealloc;

- (void)findAllInputDevices;

BridgingHeader.h

#import "switchwrapperwrapper.h"

File.swift

var temp: switchWrapperWrapper = switchWrapperWrapper();

temp.init() // I get an error "Expected declaration"

更新:

我试图使用构造函数初始化一个对象,但是从swift文件中调用构造函数时遇到了问题

- (id) init {
    if (self = [super init]) {
        struct switchWrapper switchwrapper;
        switchwrapper.switcher = new Switch();
    } return self;
}

1 个答案:

答案 0 :(得分:0)

你想:

temp = switchWrapperWrapper()

temp.init()

您需要在类上调用初始化程序并分配给变量。

顺便说一句 - 这句话:

var temp: switchWrapperWrapper!

简单地声明一个变量。它不会创建实例。它与Objective-C没什么不同:

switchWrapperWrapper *temp;

然后需要在某个时刻通过实际创建对象来遵循。

作为旁注,类和结构名称应以大写字母开头。变量和方法名称以小写开头。

相关问题