ios – Swift 3和Xcode8 – 不明确地使用init

在我安装 Xcode 8并将项目转换为 Swift 3之前,以下行很好.现在转换后它看起来像这样:
let valueData:Data = Data(bytes: UnsafePointer<UInt8>(&intVal),count: sizeof(NSInteger))

显示错误

Ambiguous use of ‘init’

它在Swift 3中有什么问题?怎么解决

解决方法

从简单值创建数据的最简单方法是通过
UnsafeBufferPointer,那么你不需要任何显式的指针转换或大小计算:
var intVal = 1000
let data = Data(buffer: UnsafeBufferPointer(start: &intVal,count: 1))
print(data as NSData) // <e8030000 00000000>

有关从值到数据转换的更通用方法
并返回,例如参见round trip Swift number types to/from Data.

相关文章

当我们远离最新的 iOS 16 更新版本时,我们听到了困扰 Apple...
欧版/美版 特别说一下,美版选错了 可能会永久丧失4G,不过只...
一般在接外包的时候, 通常第三方需要安装你的app进行测...
前言为了让更多的人永远记住12月13日,各大厂都在这一天将应...