【问题标题】:Append a value in Struct in Swift 3在 Swift 3 中的 Struct 中附加一个值
【发布时间】:2023-03-11 08:30:01
【问题描述】:

所以我的 BaseViewController 中有一个结构

struct NewUserStruct {
    var firstName: String = "Default First Name"
    var lastName: String = "Default Last Name"
}

然后我在发送的 VC 中使用它

let firstNameReg = inputFirstName.text
    let lastNameReg = inputLastName.text

    let newuser = NewUserStruct(firstName: firstNameReg!, lastName: lastNameReg!)
    print(newuser.firstName)
    print(newuser.lastName)

这可以正常工作并打印名字和姓氏。我不认为我将它保存到结构中!就像我在最终的 VC 中调用结构时一样:

let newuser = NewUserStruct()
    let firstNameLog = newuser.firstName
    print(newuser.firstName)

它打印我在 BaseViewController 中设置的默认名字字符串。如何在结构中附加发送 VC 中的值?

【问题讨论】:

  • 您预计会发生什么?您使用 NewUserStruct() 创建了新的用户实例,然后它当然会打印默认值,如果您想使用在发送 VC 上创建的 newuser ,您必须将其发送到最终 VC
  • 如何在视图控制器之间传递数据
  • 这就是我在 baseviewcontroller 中制作 Struct 的目的。存储变量值。我想当我真的想附加现有实例时,我正在创建一个新实例。
  • @Thegasman2000 你确定有"Default First Name""Default Last Name" 这样的默认值有意义吗?
  • 只是为了测试。我发送数据的 api 也对验证进行排序。

标签: ios swift struct swift3


【解决方案1】:

您需要了解将值(实例)从一个控制器传递到另一个控制器的概念。如果您想在其他控制器中使用 newuser 实例值,您必须使用 prepareForSegue 将其从一个控制器传递到另一个控制器,但是您正在另一个控制器中创建新实例 NewUserStruct() 或者您可以使用 @987654323 创建共享属性@ 或在任何地方使用它们。

struct NewUserStruct {
 static var firstName: String = "Default First Name" 
 static var lastName: String = "Default Last Name"
} 

NewUserStruct.firstName = "new name" 

在另一个控制器中

 print(NewUserStruct.firstName) // new name

【讨论】:

  • @Thegasman2000 这仅适用于您只需要一个NewUserStruct
  • 是的,它在应用程序开始时添加一个新的注册,所以只有一个实例。
【解决方案2】:

您也可以直接使用结构变量来保存值并在另一个 ViewController 中使用,如下所示

struct NewUserStruct {
    static var newUserDetails: NewUserStruct = NewUserStruct()

    var firstName: String = ""
    var lastName: String = ""
}

你可以这样赋值

NewUserStruct.newUserDetails.firstName = "ABC"
NewUserStruct.newUserDetails.lastName = "XYZ"

你可以像这样在另一个视图中获取这个值

print(NewUserStruct.newUserDetails.firstName)

您可以在您的要求完成后重置它的值

NewUserStruct.newUserDetails = NewUserStruct()

【讨论】:

    猜你喜欢
    • 2018-11-03
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 2019-03-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-04
    • 2017-03-21
    相关资源
    最近更新 更多