是否通过值或引用快速传递条件绑定?

时间:2017-07-13 18:00:52

标签: swift

我一直遇到条件绑定的一些问题,从手表加速度计返回一个无效(但非零)的对象。我想也许制作一个对象的副本可以帮助解决问题,但我不确定这是否已经发生。如果我使用如下代码:

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

这是否已经创建了CMSensorDataList对象的副本,或者我只是获取对它的引用?

1 个答案:

答案 0 :(得分:0)

它只取决于optional选项包含的类型是值类型还是引用类型。如果是引用类型,它显然是通过引用传递的。如果是值类型,则复制它(除非CoW,写时复制,在这种情况下,如果它被突变则复制它)。

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