gpt4 book ai didi

ios - 如何在 swift 中将子类 NSManagedObject 分配给 var(而不是常量)

转载 作者:可可西里 更新时间:2023-11-01 00:38:21 26 4
gpt4 key购买 nike

我有一个充满Juice的实例变量数组从 NSManagedObject 子类化的对象, 从 NSFetch 中检索.

我设置了 UITableViewCell像这样的标题,没问题:

let currentJuice = juiceList[indexPath.row]

cell.text = currentJuice.name

但是,我正在尝试传递一个 Juice 的实例 View Controller 之间。我声明一个实例变量 var selectedJuice = Juice()变量,然后在 willSelectRowAtIndexPath 中我把:

 selectedJuice = juiceList[indexPath.row]

此行抛出错误 CoreData: error: Failed to call designated initializer on NSManagedObject class我不知道为什么!我也不知道如何在 Juice 中实现指定的 init 方法。类(class),如果有人能帮忙的话

最佳答案

问题是 Juice() 创建一个 Juice 对象时没有使用指定的NSManagedObject 的初始化程序。实际上你不需要分配默认值对属性(property)的值(value)。

您应该将该属性声明为可选的

var selectedJuice : Juice? // (1)

或隐式解包可选

var selectedJuice : Juice! // (2)

然后赋值

selectedJuice = juiceList[indexPath.row]

应该没有问题。

在第一种情况 (1) 中,您可以访问该属性

if let theJuice = selectedJuice {
// ...
} else {
// no Juice selected
}

在第二种情况 (2) 中,您将访问简单的属性 selectedJuice,如果未设置 (nil),则会出现运行时异常。

关于ios - 如何在 swift 中将子类 NSManagedObject 分配给 var(而不是常量),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24560044/

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