如何将下列ObjectiveC语句转换为SWIFT:
UInt32 *pixels;
pixels = (UInt32 *) calloc(height * width, sizeof(UInt32));我试着做以下几件事:
var pixels: UInt32
pixels = (UInt32)calloc(height * width, sizeof(UInt32))我收到了错误消息:
Int不能转换为UInt。
而且(UInt32)的铸造也不起作用。有人能给我一些建议吗?我还在和斯威夫特搏斗。谢谢。
发布于 2015-02-26 14:22:18
下面是一种快速分配数组的更简单的方法:
var pixels = [UInt32](count: height * width, repeatedValue: 0)如果你真的想这么做的话。
但是,如果出于某种原因需要calloc的指针,请使用:
let pixels = calloc(UInt(height * width), UInt(sizeof(UInt32)))不过,pixels的类型必须是一种UnsafeMutablePointer<T>类型,您将像处理代码的其余部分中的一个快速指针一样来处理它。
发布于 2016-12-19 11:10:27
For Swift-3 : UnsafeMutablePointer被UnsafeMutableRawPointer取代
var pixels = UnsafeMutableRawPointer( calloc(height * width, MemoryLayout<UInt32>.size) )

发布于 2015-02-26 14:26:17
如果您确实是,那么知道您在做什么,并且坚持不安全地使用calloc分配内存
var pixels: UnsafeMutablePointer<UInt32>
pixels = calloc(height * width, sizeof(UInt32))或者只是
var pixels = calloc(height * width, sizeof(UInt32))https://stackoverflow.com/questions/28744536
复制相似问题