Zufällige Bytes in Swift 3.0 generieren
Ich möchte mit @ zufällige Bytes erzeugSecRandomCopyBytes
in Swift 3.0. Hier ist, wie ich es in Swift 2.2 gemacht habe
private static func generateRandomBytes() -> String? {
let data = NSMutableData(length: Int(32))
let result = SecRandomCopyBytes(kSecRandomDefault, 32, UnsafeMutablePointer<UInt8>(data!.mutableBytes))
if result == errSecSuccess {
return data!.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0))
} else {
print("Problem generating random bytes")
return nil
}
}
In Swift 3 habe ich versucht, es so zu machen, da ich weiß, dass das Konzept der nicht sicher zu speichernden Bytes jetzt anders ist, aber ich kann nicht zurückkehren. Wenn ich den Rückgabeteil auskommentiere, steht immer nochGeneric Parameter ResultType could not be inferred
fileprivate static func generateRandomBytes() -> String? {
var keyData = Data(count: 32)
_ = keyData.withUnsafeMutableBytes {mutableBytes in
let result = SecRandomCopyBytes(kSecRandomDefault, keyData.count, mutableBytes)
if result == errSecSuccess {
return keyData.base64EncodedString(options: NSData.Base64EncodingOptions(rawValue: 0))
} else {
print("Problem generating random bytes")
return nil
}
}
return nil
}
Weiß jemand, wie man das behebt?
Vielen Dan