从Swift传递一个布尔指针

时间:2015-05-08 23:35:04

标签: objective-c swift

我试图从swift调用Objective-C方法。方法签名是:

lib-api

我还无法传入布尔指针。以下是我到目前为止的情况:

-(BOOL)getPassThroughSync:(BOOL *)enabled error:(NSError **)error;

由于参数列表无效,因此无法编译。

同样,我想打电话

var passThrough: Bool?
    if scanner.getPassThroughSync(&passThrough, error: nil) {
}

需要一个int指针。

我错过了什么?

2 个答案:

答案 0 :(得分:4)

最后,在其他答案的评论的帮助下,以下工作:

var passThrough: ObjCBool = false
if scanner.getPassThroughSync(&passThrough, error: nil) {
    cell.detailTextLabel?.text = passThrough ? "Yes" : "No"
}

同样,

var current: Int32 = 0
if scanner.getUSBChargeCurrent(&current, error: nil) {
    cell.detailTextLabel?.text = String(current) + "mA"
}

答案 1 :(得分:0)

我认为您正在寻找的答案位于this Apple document指针部分。基本上,您必须声明指针类型:Type *映射到UnsafeMutablePointer<Type>

要访问存储在指针中的值,请使用其memory属性。

有关UnsafeMutablePointer的更多详情,请参阅this document