gpt4 book ai didi

ios - Xcode NSManagedObject 子类在标记为非可选时包含选项

转载 作者:行者123 更新时间:2023-11-30 13:54:52 25 4
gpt4 key购买 nike

我有一个名为 Film 的核心数据实体,它具有标题和日期属性。我注意到生成的 NSManagedObject 子类包含可选的 NSManaged 属性,即使我在核心数据检查器中将这些属性标记为非可选。

enter image description here

enter image description here

我可以手动将其更改为非可选属性,还是将其保留为可选属性是更好的选择?为什么?

最佳答案

“可选”对 Core Data 的含义与对 Swift 的含义不同。

  • 如果核心数据属性不是可选的,则在保存更改时它必须具有非零值。其他时候,Core Data 并不关心属性是否为零。
  • 如果 Swift 属性不是可选的,则在初始化完成后,它始终必须具有非零值。

将 Core Data 属性设为非可选并不意味着它在 Swift 意义上是非可选的。这就是为什么生成的代码使这些属性成为可选的 - 就核心数据而言,除非保存更改,否则具有 nil 值是合法的。

更新:写完这个答案后,我写了一篇深入的博客文章,更详细地解释了事情:https://www.atomicbird.com/blog/clash-of-the-optionals/

关于ios - Xcode NSManagedObject 子类在标记为非可选时包含选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33758883/

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