Неоднозначное использование ‘ 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()

вызывает ошибку

Неоднозначное использование ‘ arrayOfBytes()’

. Я проверил похожие вопросы, но никто не помог.

Ошибка perisist на обоих Xcode 7.3 Swift 2.2 и Xcode 8.0 Swift 2.3.

Я прокомментировал структуру PusherSwift в Xcdoe 7.3, и это сработало.

Я не уверен, если это ошибка или что-то я скопировал неправильно.

1 ответ

  1. Если PusherSwift является pusher-websocket-swift, то похоже, что они просто сбросили CryptoSwift прямо в свой модуль . Если вы также импортируете CryptoSwift напрямую, они столкнутся. Это ошибка толкателя. Они не могут просто бросить другую библиотеку в свою собственную, не заботясь о том, чтобы она не столкнулась.