swift - 如何在类的参数中保留对另一个对象的引用

标签 swift

刚开始学习Apple Swift语言,看不懂: 如何在类的参数中保留对另一个对象的引用?

// List - my custom class

class RecordsList: NSObject {

    var listObj: List!

    init (inout list: List!)
    {
        self.listObj = list
    }
    func printData()
    {
        println(self.listObj.name)
    }
}


var listObject = List()
listObject.name = "FirstValue"

RL = RecordsList(&listObject)
listObject.name = "SecondValue"

RL.printData()

// I expect: "SecondValue"
// But result: FirstValue =(

如何获取“SecondValue”?

最佳答案

在 Swift 中,对象通常是通过引用传递的,只有像字符串、整数...这样的东西是按值传递的...(结构也是按值传递的!!!)

这意味着你不需要创建一个指向你的对象的特殊指针......如果你只是传递一个对象你已经设置了一个指向该对象的指针(不是副本)

class TestClass {
    var name: String?
}

class SecondTestClass {
    var testClass: TestClass?
}

var testClass = TestClass()

var secondTestClass = SecondTestClass()
secondTestClass.testClass = testClass

testClass.name = "Worked"

var stringInObject = secondTestClass.testClass?.name

NSLog("\(stringInObject)")

你就完成了:-)

关于swift - 如何在类的参数中保留对另一个对象的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31946964/

相关文章:

objective-c - 将 Swift 值类型与对象(即运行时的引用类型)区分开来?

Swift - UIAlert 在 UICollectionViewCell 中不起作用

SwiftUI 不同子项对齐和 GeometryReader

swift - 什么时候在 Swift 中使用 `protocol` 和 `protocol: class`?

ios - CLLocationManager的didEnterRegion有问题

ios - 裁剪屏幕截图并分享?

ios - 初始化大量实例

ios - 制作二进制计算器应用程序 (swift)

swift - 错误 : Cannot assign to '...' in 'self'

ios - 如何改变 "scrollView.setContentOffset"的速度