我正在尝试将Objective-C库ORSSerialPort实现到我的Swift项目中。
随库提供的示例为ORSSerialPortManager类提供了以下设置:
ORSSerialPortManager *portManager = [ORSSerialPortManager sharedSerialPortManager];
如果这样的东西不能在Swift中占据它的位置吗?
ORSSerialPortManager = ORSSerialPortManager.sharedSerialPortManager()
也许指针就像这样?
ORSSerialPortManager = withUnsafePointer(&ORSSerialPortManager, ORSSerialPortManager.sharedSerialPortManager())
我收到错误:“无法分配此表达式的结果”,并且“顶级不允许表达式”。有什么需要改变?
答案 0 :(得分:1)
你的表达:
ORSSerialPortManager = ORSSerialPortManager.sharedSerialPortManager()
正在尝试分配类型名称(ORSSerialPortManager
)。这就是"无法分配给这个表达式的结果"错误;表达式ORSSerialPortManager
不可分配。相反,您想要分配一个新的变量名称:
let aPortManager = ORSSerialPortManager.sharedSerialPortManager()
或者,如果你想要一个非常量引用:
var aPortManager = ORSSerialPortManager.sharedSerialPortManager()
你也可以在变量上加上类型注释,但这里不需要它(它可以从方法签名中推导出来):
var aPortManager : ORSSerialPortManager = ORSSerialPortManager.sharedSerialPortManager()
请注意名称类型的顺序更改:name : Type
而不是Type name
。