使用以下init声明说出一个对象:
class Transaction {
let title: String
init (title: String) {
self.title = title
}
}
我想在prepareForSegue
中写下以下内容:
destinationVC.transaction = transactions[row] as Transaction
如何在destinationVC中声明transaction
,因为它不会让我在没有常量的情况下实例化它。
答案 0 :(得分:2)
您必须在目的地vc的课程中写下这样的内容:
var transaction: Transaction!
因此,您可以在prepareForSegue
中传递变量。
出于两个原因,我们在这里使用!
(固有地解包的可选类型)。
-init
。因此,我们无法声明为Transaction
类型并将值传递给-init
。-prepareForSegue:
中传入了一个值,则保证变量具有值。将其声明为Transaction?
并在每次使用时展开都会增加不必要的开销。答案 1 :(得分:0)
主控制器中的变量transactions
必须声明为Array<Transaction>
。
destinationVC中的变量transaction
必须声明为Transaction