我在 Swift 3.0 中有一些代码,就像这样尝试更新元素数组中的属性......
for point in listOfPoints {
var pointInFrame : Float = Float(point.position.x * sensorIncomingViewPortSize.width) + Float(point.position.y)
point.status = getUpdateStatus( pointInFrame )
}
Run Code Online (Sandbox Code Playgroud)
但是我收到一个编译错误:“无法分配给属性:‘point’是一个‘let’常量”[第 3 行]
无论如何,有没有办法使迭代器(点)在 Swift 中可变,就像如何使用“inout”作为函数参数?
或者你应该以另一种方式完成这项任务?
提前致谢。
斯坦
因此,我正在Ales Tsurko进行Chris Adamson的CoreAudio示例的Swift转换,该转换非常[且需要] Swift转换。但是,我遇到了一些我似乎找不到直接答案的东西。
在示例中有类似这样的内容:
var theErr = noErr
var dictionarySize: UInt32 = 0
var isWritable: UInt32 = 0
theErr = AudioFileGetPropertyInfo(
audiofile,
kAudioFilePropertyInfoDictionary,
&dictionarySize,
&isWritable
)
Run Code Online (Sandbox Code Playgroud)
我很好奇的是使用&运算符。
现在,在普通的C语言家族中,它指的是变量的内存地址,并且似乎在这里这样做。
什么让我感到困惑,是我在第四行中编写Swift还是C代码?
我知道您将Obj-C和Swift混合使用,但是我在Swift文档中找不到使用&作为内存操作符的任何内容。那么,这种用法是没有记载的吗?或者,如果我已经暂时从Swift移出C / Obj-C,那就行了吗?
谢谢