Swift功能错误

时间:2017-10-30 14:36:45

标签: ios objective-c swift xcode

我试图使用ObjC框架中的函数。

fileServer.listShares({(_ shares: [SMBShare], _ error: Error?) -> Void in
if error != nil {
    print("Unable to list the shares: \(error)")
}
else {
    for share: SMBShare in shares {
        print("Got share: \(share.name)")
    }
}
})

它给了我这个错误:Cannot convert value of type '([SMBShare], Error?) -> Void' to expected argument type '(([SMBShare]?, Error?) -> Void)?'

任何想法?

  

Xcode建议将Insert ' as! ([SMBShare]?, Error?) -> Void'放在最后,但这会弄乱函数。

1 个答案:

答案 0 :(得分:1)

这是因为预期类型为[SMBShare]?Error?。 我建议您只需更改类型如下:

fileServer.listShares({(_ shares: [SMBShare]?, _ error: Error?) -> Void in
    if error != nil {
        print("Unable to list the shares: \(error)")
    }
    else {
        for share: SMBShare in shares {
            print("Got share: \(share.name)")
        }
    }
})