Xcode 在Swift语言上访问CMutableVoidPointer值
我有以下关于Swift语言的源代码。我没有找到读取takesAMutableVoidPointer函数数组值的方法。我可以得到读取数组值的建议吗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
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 */ }