Swift 3和Xcode8 - 不明确地使用init [英] Swift 3 and Xcode8 - Ambiguous use of init

查看:142
本文介绍了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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆