如何在Swift中将对象传递给新引用

时间:2018-12-29 08:54:15

标签: swift

在Swift中,我知道从类创建的对象是引用类型,我正在做的是:

class Test {
  var property: String?
}

var firstTest: Test? = Test()
firstTest.property = "Value"

var secondTest = firstTest

secondTest = nil

print("first Test result: ",firstTest)
// first Test result: nil

调试器输出nil!因为对secondTest和firstTest的引用是相同的

我给secondTest一个新的内存引用

1 个答案:

答案 0 :(得分:0)

我的解决方案是使用struct而不是class,因为struct是value类型,这意味着它在传递给另一个变量或函数等时会在内存中创建新对象。 但我的解决方案仅适用于struct,希望对您有所帮助;)

struct Test {
  var property: String?
}

var firstTest: Test? = Test()
firstTest.property = "Value"

var secondTest = firstTest

secondTest = nil

print("first Test result: ",firstTest.property)
/* first Test result: Value */