私はこのコードを既存のswiftで動作させています。ソリューションセットでもSwiftをアップデートした後でwithMemoryReboundを使用できません
func toByteArray<T>(_ value: T) -> [UInt8] {
var val = value
//let sock = socket(PF_INET, SOCK_STREAM, 0) // added in 11/16
return withUnsafePointer(to: &val) {
Array(UnsafeBufferPointer(start: UnsafePointer<UInt8>($0), count: MemoryLayout<T>.size))
}
}
initが使用できないというエラーメッセージが表示されるため、これは機能しません。 withMemoryRebound(to:capacity:_)を使用します。 [OK]を、私はグーグルを通じて研究し、働く必要のあるいくつかのオプションを発見した、今私の更新されたコードが
func toByteArray<T>(_ value: T) -> [UInt8] {
var val = value
return withUnsafePointer(to: &val) {
//another swift 3 change with UnsafePointer<UInt8>
Array(UnsafeBufferPointer(start: ($0).withMemoryRebound(to:UInt8.self, capacity: 1){ SCNetworkReachabilityCreateWithAddress(nil, $0)}, count: MemoryLayout<T>.size))
}
}
動作するはず
であり、しかし、それは私が理解していない未解決の識別子SCNetworkReachabilityCreateWithAddressの使用が可能と言いますそれに対する解決策を見いだすことはできません。問題の内容は何ですか?更新されたSwiftとXcodeがあると私は感じています。
コードの一つ不可解な長いラインである男、笑 – Alexander
これは、あなたが探しているものかもしれません:http://stackoverflow.com/a/39004383/1187415。 –