'arrayOfBytes()' 的使用不明确

Ambiguous use of 'arrayOfBytes()'

这是我的代码:

 func aesEncrypt(key: String, iv: String) throws -> String
{
    let data = self.dataUsingEncoding(NSUTF8StringEncoding)

    let enc = try AES(key: key, iv: iv, blockMode:.CBC).encrypt(data!.arrayOfBytes())
    let encData = NSData(bytes: enc, length: Int(enc.count))
    let base64String: String = encData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions(rawValue: 0));
    let result = String(base64String)
    return result
}

func aesDecrypt(key: String, iv: String) throws -> String
{
    let data = NSData(base64EncodedString: self, options: NSDataBase64DecodingOptions.IgnoreUnknownCharacters)
    let dec = try AES(key: key, iv: iv, blockMode:.CBC).decrypt(data!.arrayOfBytes())
    let decData = NSData(bytes: dec, length: Int(dec.count))
    let result = NSString(data: decData, encoding: NSUTF8StringEncoding)
    return String(result!)
}

行:

data!.arrayOfBytes()

正在产生错误

Ambiguous use of 'arrayOfBytes()'

。我检查过类似的问题,但 none 有帮助。

错误在Xcode 7.3 Swift 2.2 和Xcode 8.0 Swift 2.3 上都存在。

我在 Xcdoe 7.3 中注释掉了 PusherSwift 框架,它起作用了。

不知道是bug还是我抄错了

如果 PusherSwift 是 pusher-websocket-swift, then it looks like they just dropped CryptoSwift directly into their module。如果您还直接导入 CryptoSwift,那么它们将会发生冲突。这是 Pusher 的错误。他们不能在不特别注意不会发生冲突的情况下将另一个库放入自己的库中。