0

これが私のコードです:

 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()」のあいまいな使用

. 同様の質問を確認しましたが、何も役に立ちませんでした。

このエラーは、Xcode 7.3 Swift 2.2 と Xcode 8.0 Swift 2.3 の両方で持続します。

Xcdoe 7.3 の PusherSwift フレームワークをコメントアウトしたところ、うまくいきました。

それがバグなのか、間違ってコピーしたものなのかはわかりません。

4

1 に答える 1

0

PusherSwift がpusher-websocket-swiftである場合、 CryptoSwift をモジュールに直接ドロップしたように見えます。CryptoSwift も直接インポートしている場合、これらは衝突します。これはプッシャーのミスです。衝突しないように特別な注意を払わずに、別のライブラリを自分のライブラリにドロップすることはできません。

于 2016-10-03T15:17:44.777 に答える