我已将C结构导入到我的Swift项目中,但是无法获取或设置导入结构上的init
属性,出现以下错误:
错误:'init'是该类型的成员;使用'type(of:...)'初始化具有相同动态类型的新对象
原始的C结构类似于:
struct test_t {
int init;
};
和失败的我的Swift代码如下:
var t = test_t()
let i = t.init // error thrown here
t.init = 10 // error thrown here
我可以理解名称是个问题,所以还有其他方法可以在Swift中为结构设置属性,也许涉及一些元编程或动态调度?
答案 0 :(得分:1)
您可以声明变量名以使用保留的关键字,方法是在变量名周围使用反引号,例如
struct Test {
var `init`:Int
}
访问/调用该属性/方法时,可以对名称为保留关键字的导入属性/方法进行调用。
var t = test_t()
let i = t.`init`
t.`init` = 10