DCD*_*CDC 9 xcode ios swift swift3 xcode8
在我安装Xcode 8并将项目转换为Swift 3之前,以下行很好.现在转换后它看起来像这样:
let valueData:Data = Data(bytes: UnsafePointer<UInt8>(&intVal), count: sizeof(NSInteger))
它显示错误
模糊地使用'init'
它在Swift 3中有什么问题?怎么解决?
UnsafePointer有两个UnsafePointer和的初始化程序UnsafeMutablePointer,并且sizeof被移动以MemoryLayout消除歧义:
let valueData = withUnsafePointer(to: &intVal){
    return Data(bytes: $0, count: MemoryLayout<NSInteger>.size)
}
Data从简单值创建的最简单方法是通过
 UnsafeBufferPointer,然后您不需要任何显式指针转换或大小计算:
var intVal = 1000
let data = Data(buffer: UnsafeBufferPointer(start: &intVal, count: 1))
print(data as NSData) // <e8030000 00000000>
有关从值到Data
和向后转换的更通用的方法,请参阅例如往返数据的往返Swift数字类型.
| 归档时间: | 
 | 
| 查看次数: | 10089 次 | 
| 最近记录: |