我的核心数据模型中有两个类:Sample和Photo1:N关系.我NSManagedObjectContext在我的应用程序中使用了一个用作托管对象的便笺簿.因此,我总是在上下文中插入最近创建的对象.如果用户选择放弃她的更改,我只需回滚上下文.否则,保存上下文.
错误
CoreData:错误:将托管对象0x1704253a0(0x1702a1560)从其上下文中删除后进行变更.
Photo从上下文中删除对象后,将在控制台中打印.删除在上下文保存之前发生,因此Photo objectID是临时的.这是快速代码:
function addPhoto(to sample: Sample) -> Photo {
let photo = Photo(context: managedObjectContext)
sample.addToPhotos(photo)
photo.sample = sample
return photo
}
function remove(photo: Photo) {
photo.sample.removeFromPhotos(photo)
photo.sample = nil
managedObjectContext.delete(photo)
}
//user adds new Photo
let sample = loadSample() //sample is loaded from database
let photo = addPhoto(to: sample)
//later on user decides to remove the added Photo before the context is saved
remove(photo: photo)
Run Code Online (Sandbox Code Playgroud)
奇怪的是,没有抛出错误或异常,我的代码完成到最后.但是,错误消息将打印在控制台上.
我相信这是因为上下文Photo在实际删除它之前使所有属性无效.我知道属性是无效的,因为我添加了观察者.
如何防止此错误显示在控制台中?
谢谢.
| 归档时间: |
|
| 查看次数: |
2621 次 |
| 最近记录: |