无法调用' sizeof'使用类型'([Double])'的参数列表

时间:2015-07-07 17:14:03

标签: swift

调用sizeof时收到此错误消息。

  

/Users/MNurdin/Documents/iOS/xxxxx/ViewController.swift:46:58:无法调用' sizeof'使用类型'([Double])'

的参数列表

我的代码

let wts: [Double]  = [ -30 , 20 , 20 ]
let weights: NSData = NSData(bytes: wts, length: sizeof(wts))

我做错了什么?

2 个答案:

答案 0 :(得分:6)

不要在实例上使用sizeof(),它需要一种类型。请改用sizeofValue()

let wts: [Double] = [-30, 20, 20]
let weights = NSData(bytes: wts, length: sizeofValue(wts) * wts.count)

请注意,您需要将sizeofValue的值乘以数组的计数,因为它将返回数组中每个元素的大小,而不是整个数组的大小。

答案 1 :(得分:2)

如果你想要获得数组的总字节大小,你需要知道有多少元素,并将它乘以double的大小。

let wts: [Double] = [-30, 20, 20]
let sizeOfArray = wts.count * sizeof(Double) //sizeof requires a Type [Double] is not a type
let weights: NSData = NSData(bytes: wts, length: sizeOfArray