gpt4 book ai didi

Swift 在 segue 中传递一个带有常量的对象

转载 作者:行者123 更新时间:2023-11-28 13:10:45 24 4
gpt4 key购买 nike

说一个具有以下初始化声明的对象:

class Transaction {
let title: String
init (title: String) {
self.title = title
}
}

我想在 prepareForSegue 中编写以下内容:

destinationVC.transaction = transactions[row] as Transaction

我如何在 destinationVC 中声明 transaction,因为它不允许我在没有常量的情况下实例化它。

最佳答案

你必须在目标 vc 的类中写这样的东西:

var transaction: Transaction!

因此您可以在 prepareForSegue 中传递一个变量。

出于两个原因,我们在这里使用 !(本质上未包装的可选类型)。

  • 我们不能直接控制 View Controller 的实例化过程,这意味着我们不能在这里使用它的-init。因此,我们无法声明为类型 Transaction 并将值传递给 -init
  • 如果您在 -prepareForSegue: 中传入一个变量,则保证该变量具有一个值。将其声明为 Transaction? 并在我们每次使用时展开它会增加不必要的开销。

关于Swift 在 segue 中传递一个带有常量的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31414817/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com