【发布时间】:2016-11-02 21:22:35
【问题描述】:
我只是尝试保存数据时遇到错误。这就是我正在做的......
1) 首先我使用 Category 对象获取:
let categories: NSFetchRequest<Categories> = Categories.fetchRequest()
categories.predicate = NSPredicate(format: "id==%@", '25')
var category = try managedObjectContext.fetch(categories)[0]
2) 然后我在一个新的 Subcategories 对象上设置值:
let subcategory = NSEntityDescription.insertNewObject(forEntityName: "Subcategories", into: managedObjectContext) as! Subcategories
subcategory.text = "Some text..."
subcategory.categories = category
3) 最后我保存:
managedObjectContext.save()
***** 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“* -[__NSPlaceholderArray initWithObjects:count:]: 尝试从 objects[0] 插入 nil 对象”
Category 不是 nil,因为我可以在保存之前立即打印它。我认为 managedObjectContext 有问题。
【问题讨论】:
-
您是否检查了 subcategory.categories 和类别的类型?你的 subcategory.categories 是什么类型的?
-
你使用了 NSManagedObjectSubclassing 吗?