2017-07-13 24 views
0

我一直有一些问题与条件绑定返回手表加速度计中的无效(但非零)对象。我在想,也许制作一个对象的副本可以帮助解决问题,但我不确定这是否已经发生。如果我使用的代码如:是通过值或引用快速传递的条件绑定?

if let data = recorder.accelerometerData(from: startDate, to: endDate){...} 

这是已经创建一个CMSensorDataList对象的副本还是我只是得到它的引用?

回答

0

它只是取决于可选包装的类型是值类型还是引用类型。如果引用类型,它显然是通过引用。如果是值类型,则将其复制(除非CoW,写入时复制,在这种情况下,如果发生变化,它将被复制)。

在这种情况下,CMSensorDataList是一个类,所以它是对该实例的引用,而不是其副本。