Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xcode 在Swift语言上访问CMutableVoidPointer值_Xcode_Swift - Fatal编程技术网

Xcode 在Swift语言上访问CMutableVoidPointer值

Xcode 在Swift语言上访问CMutableVoidPointer值,xcode,swift,Xcode,Swift,我有以下关于Swift语言的源代码。我没有找到读取takesAMutableVoidPointer函数数组值的方法。我可以得到读取数组值的建议吗 func takesAMutableVoidPointer (x: CMutableVoidPointer) { // TODO: How to read the array values } var a: Float[] = [1.0, 2.0, 3.0] takesAMutableVoidPointer (&a) 当使用Swif

我有以下关于Swift语言的源代码。我没有找到读取takesAMutableVoidPointer函数数组值的方法。我可以得到读取数组值的建议吗

func takesAMutableVoidPointer (x: CMutableVoidPointer) {
    // TODO: How to read the array values
}

var a: Float[] = [1.0, 2.0, 3.0]
takesAMutableVoidPointer (&a)

当使用Swift类型时,您很可能永远不需要使用指针类型或任何其他C类型。当与Obj-C或C中的遗留代码(如GCD和其他框架)进行接口时,可以使用这些代码

如果您使用Swift代码传递对象,您可以正常访问它们:

func takesSomeFloats(array: Float[])
{
    for float in array { println(float) }
}

var a : Float[] = [1.0, 2.0, 3.0]
takesSomeFloats(a)
现在,假设您想使用Grand Central dispatch(GCD)的
dispatch\u一次。其签名为:

func dispatch_once(_ predicate: CMutablePointer<dispatch_once_t>, _ block: dispatch_block_t!)

我们实际上不需要担心创建或强制转换指针类型,Swift会为我们处理这些问题。

您打算如何处理这些问题?你不会真的使用swift中的指针,你会用它将swift代码连接到C,并使用此函数的C实现与数组交互。我正在尝试将objective-C代码迁移到swift。这就是我读取数组值的原因。我仍然不明白。如果您有swift方法,只需将数组作为swift数组传递和访问即可。如果您有一个objc方法,只需传递数组并作为
NSArray
访问它。我的目的是操作CMutableVoidPointer对象。我可以知道如何用CMutableVoidPointer打印数组吗?
var dispatchToken : dispatch_once_t = 0
dispatch_once(&dispatchToken) { /* do something here */ }