将 NSData UnsafePointer 操作转换为 Swift 3

Convert NSData UnsafePointer operation to Swift 3

我有一段时间将我的工作 NSData swift 2.2 代码转换为 3.

我在一个文件中有很多相似的错误,我无法编译它来检查我的转换。以下是原文:

let dataPtr = UnsafePointer<UInt8>(bytes).advancedBy(f_offset)

let retVal = UnsafePointer<T>(dataPtr).memory

我认为第一行被转换为:

let dataPtr = UnsafeRawPointer(bytes).advanced(by: f_offset)

我不知道如何转换第二行,因为 memory 不是 UnsafeRawPointer 的成员,Swift 3 似乎需要它。

如何转换这两行?

如果我遇到更具体的错误,我会 post 他们。

假设您的 bytes 取自某些 NSDatabytes 属性:

let bytes = nsData.bytes

那你就不用UnsafeRawPointer(_:):

let dataPtr = bytes.advanced(by: f_offset)

并且可以使用UnsafeRawPointer的方法:

let retVal = dataPtr.load(as: T.self)