6
Swift 3.0でSecRandomCopyBytes
を使用してランダムなバイトを生成したいとします。ここで私はスウィフト2.2スウィフト3では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
}
}
でそれをやった方法です、私は私がunsafemutablebytesの概念が今異なっている知っているので、このようにそれを実行しようとしましたが、それは私が返すことはできません。私は戻り部分をコメントアウトした場合、それはまだ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
}
を言う誰もがこの問題を解決する方法を知っていますか?
おかげ
おかげに短縮することができます – hockeybro