Swift 3和Xcode8 - 不明确地使用init [英] Swift 3 and Xcode8 - Ambiguous use of init
本文介绍了Swift 3和Xcode8 - 不明确地使用init的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我安装Xcode 8并将项目转换为Swift 3之前,以下行很好。现在转换后它看起来像这样:
Before I installed Xcode 8 and converted project to Swift 3, the following line was fine. Now after conversion it looks like this:
let valueData:Data = Data(bytes: UnsafePointer<UInt8>(&intVal), count: sizeof(NSInteger))
它显示错误
模糊使用'init'
Ambiguous use of 'init'
Swift 3中有什么问题?如何解决?
what is wrong with it in Swift 3? How to fix it?
推荐答案
从中创建数据
的最简单方法一个简单的值是通过
UnsafeBufferPointer
,然后你不需要任何显式的指针转换或大小计算:
The easiest way to create Data
from a simple value is to go via
UnsafeBufferPointer
, then you don't need any explicit pointer conversion or size calculation:
var intVal = 1000
let data = Data(buffer: UnsafeBufferPointer(start: &intVal, count: 1))
print(data as NSData) // <e8030000 00000000>
有关从值转换为数据的更通用方法
和返回,请参阅往返Swift与数据相关的数字类型。
这篇关于Swift 3和Xcode8 - 不明确地使用init的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文