我在我的某个应用中使用了核心数据。两个实体之间存在一对多的关系
事件 (eventId,评论)
注释 (commentId,评论)
从服务API我得到另一个块中的两个事件列表,注释列表和关系。所以我要更新评论。我更新时工作正常。但是,虽然我试图访问特定事件的所有评论
<relationship fault: 0x7fad45884760 'comments'>
以下是我根据ID
获取特定对象的代码static func fetchObjectWithId(key: String, value: CVarArgType, context: NSManagedObjectContext, entityName: String) -> CoreDataBase!{
let fetchRequest = NSFetchRequest(entityName: entityName)
fetchRequest.returnsObjectsAsFaults = false
if let val = value as? Int32{
fetchRequest.predicate = NSPredicate(format: "%K = %d", key, val)
}
else{
fetchRequest.predicate = NSPredicate(format: "%K contains[c] %@", key, value)
}
do{
let result = try context.executeFetchRequest(fetchRequest)
if result.count == 1{
if let data = result[0] as? CoreDataBase{
return data
}
return nil
}
else{
return nil
}
}
catch{
let saveError = error as NSError
print("\(saveError), \(saveError.userInfo)")
}
return nil
}
请帮帮我。我在哪里弄错了。
答案 0 :(得分:1)
第一次访问时会延迟提取故障。如果您希望获取获取请求获取多对多关系对象,则可以添加以下内容:
fetchRequest.relationshipKeyPathsForPrefetching = "Events-Comments Relationship Name"