Chcę generować losowe bajty za pomocą SecRandomCopyBytes
w Swift 3.0. Oto jak to zrobiłem w Swift 2.2Generowanie losowych bajtów w Swift 3.0
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
}
}
w Swift 3, starałem się zrobić to w ten sposób, ponieważ wiem, że pojęcie unsafemutablebytes jest inna teraz, ale nie pozwala mi wrócić. Gdybym wykomentuj część powrotną, wciąż mówi Generic 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
}
Czy ktoś wie jak rozwiązać ten problem?
Dzięki
Dzięki tym pracowali – hockeybro