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

Antworten auf die Frage(4)

Ihre Antwort auf die Frage