【问题标题】:AppDelegate doesn't access updated struct variable - SwiftAppDelegate 不访问更新的结构变量 - Swift
【发布时间】:2015-11-02 15:19:08
【问题描述】:

我有一个看起来像这样的结构

struct myStruct {
    var array1: [String]
    var additionalInfo: String?
    var array2: [String]
}

var appendMe = [myStruct(array1: ["Value1"], additionalInfo: nil, array2: ["Value1","Value2"])]

MainViewController 中我附加了附加值,但是当我尝试从 AppDelegate 访问它们时,例如像这样

appendMe[array1.count-1].array2[0]

我总是不断获取更新前在结构中设置的原始值。就像 Xcode 为 MainViewControllerAppDelegate 创建一个单独的结构实例一样。

我该如何解决这个问题?

谢谢!

【问题讨论】:

    标签: ios arrays swift struct appdelegate


    【解决方案1】:

    结构体在 Swift 中是通过值传递的,而不是通过引用传递的。您的主视图控制器正在修改结构的副本,而不是您认为的那个。

    【讨论】:

    • 那我如何访问它的副本?
    • 不要访问副本或尝试通过引用传递。将结构包装在一个对象中,你会没事的。
    • @HermannKlecker 尝试将其包装到具有 NSObject 属性的类中,但无济于事。我应该如何将它包裹在一个对象中?
    • 只需创建一个新类,而不是 NSObject 继承,一个普通的 swift 对象就可以了。它唯一的属性是 MyStruct 类型。基本上就是这样。
    猜你喜欢
    • 1970-01-01
    • 2015-09-08
    • 1970-01-01
    • 1970-01-01
    • 2018-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    相关资源
    最近更新 更多