【发布时间】:2020-01-02 08:32:51
【问题描述】:
我正在尝试将 6 个字符串的数组保存到 CoreData,如下所示:
let imageUrls = ["image-url....", "image-url....", ..., "image-url"]
我已尝试How to save Array to CoreData? 和Best practice? - Array/Dictionary as a Core Data Entity Attribute 中所述的所有方法,但均未成功。
这是我正在尝试做的方法。
在我的 .xcdatamodeld 中,我声明: imageUrl 作为一个可变形的,见链接中的图片(无法将其附加到帖子中,对此我很抱歉!):https://drive.google.com/file/d/1VJey55oD9KhOy1KDy59h8PweMMQnaK2-/view?usp=sharing
在我的 NSManagedObject 类中
@objc(Entity)
public class Entity: NSManagedObject {
@NSManaged public var imageUrls: [String]?
....
这是我在将实体保存到 CoreData 之前创建实体的方式:
entity.imageUrls = ["test", "test", "test"]
当我尝试获取 imageUrls 时,获取的 entity.imageUrls 等于 nil。我不明白这一点。预期的结果与我保存到 CoreData 的数组相同。
乔金·丹尼尔森回答
【问题讨论】:
-
您是否在模型中将自定义类设置为
[String]以获取属性? -
是的,忘记说了!
-
也许你需要清理和重建你的项目。我刚刚创建了一个简单的测试项目,它使用 Transformable 和设置自定义类工作正常
-
我忘记了我必须清除所有 nil 对象的 CoreData ......它起作用了。非常感谢!
-
嘿,@CoderOgden 我遇到了这个确切的问题。我尝试清理构建文件夹并重新构建,但结果仍然相同。您能否进一步解释一下您是如何解决此问题的?