因此,我正在研究Ales Tsurko伟大的,需要快速转换克里斯亚当森的CoreAudio的例子。然而,我遇到了一些我似乎找不到直接答案的东西。
在这些例子中,有这样的东西:
var theErr = noErr
var dictionarySize: UInt32 = 0
var isWritable: UInt32 = 0
theErr = AudioFileGetPropertyInfo(
audiofile,
kAudioFilePropertyInfoDictionary,
&dictionarySize,
&isWritable
)我好奇的是'&‘(符号)运算符的用法。
在普通的C族语言中,这指的是变量的内存地址,这里似乎就是这样做的。
我感到困惑的是,我是在第四行中编写Swift或C代码吗?
我知道您混合了Obj和Swift,但是我在Swift文档中找不到使用&作为内存运算符的任何东西。那么,这种使用是没有文档的,还是如果我暂时走出Swift进入C/Obj与这一行?
谢谢
发布于 2016-03-14 15:32:02
当函数声明为接受UnsafeMutablePointer参数时,它可以对任何类型的类型接受与UnsafeMutablePointer相同的操作数。 如果您已经声明了类似于此的函数: func takesAMutableVoidPointer(x: UnsafeMutablePointer) { // .} 您可以使用下列任何一种方式来调用它: 变量x: Float = 0.0,y: Int =0 var p: UnsafeMutablePointer = nil,q: UnsafeMutablePointer = nil var a: UnsafeMutablePointer= 1.0,2.0,3.0,b: Int = 1,2,3 takesAMutableVoidPointer(nil) takesAMutableVoidPointer(p) takesAMutableVoidPointer(q) takesAMutableVoidPointer(&x) takesAMutableVoidPointer(&y) takesAMutableVoidPointer(&a) takesAMutableVoidPointer(&b)
这是将一个对象的地址传递给一个函数,并且是本机Swift。
https://stackoverflow.com/questions/35991492
复制相似问题