我有几个问题更新到 swift 3.0。我有以下代码:
// Retrieve the Device GUID
let device = UIDevice.current
let uuid = device.identifierForVendor
let mutableData = NSMutableData(length: 16)
(uuid! as NSUUID).getBytes(UnsafeMutablePointer(mutableData!.mutableBytes))
// Verify the hash
var hash = Array<UInt8>(repeating: 0, count: 20)
var ctx = SHA_CTX()
SHA1_Init(&ctx)
SHA1_Update(&ctx, mutableData!.bytes, mutableData!.length)
SHA1_Update(&ctx, (opaqueData1! as NSData).bytes, opaqueData1!.count)
SHA1_Update(&ctx, (bundleIdData1! as NSData).bytes, bundleIdData1!.count)
SHA1_Final(&hash, &ctx)
let computedHashData1 = Data(bytes: UnsafePointer(&hash), count: 20)
我的第一个问题是代码行:
(uuid! as NSUUID).getBytes(UnsafeMutablePointer(mutableData!.mutableBytes))
mutableData!.mutableBytes 现在返回一个 UnsafeMutableRawPointer 并且编译器抱怨“无法使用类型为 '(UnsafeMutableRawPointer)' 的参数调用类型 'UnsafeMutablePointer<_> 的初始化程序”现在我一直在尝试将它们转换为相同的类型,但已经没有成功。
我的第二个问题是这条线:
let computedHashData1 = Data(bytes: UnsafePointer(&hash), count: 20)
此行会导致编译器错误“模糊使用 'init'”