我试图将刚从json创建的NSManagedObject链接到另一个已保存的NSManagedObject,但我无法将其工作。
基本上,当我需要显示细节时,我的功能看起来像这样:
func downloadDetails(){context context: NSManagedObjectContext, main:MainEntity, completion () -> Void {
// First, I'm getting the matching object in the right context
if let matchingMain = try context.existingObjectWithID(show.objectID) as? MainEntity {
// Then, i'm making a request for the details from my main object and
// looping inside the json response.
// Problem: main and matchingMain are wiped out from memory after
// the first iteration, and the loop throws an error when i try to make
fetchDetails()
for detailJSON in try detailsJSON.children() {
let detail = new DetailFromJson(detailJson)
// I get an error on the second item because matchingMain data
// is no longer here ("data: <fault>")
detail.main = matchingMain
}
saveContexts()
completion()
}
我对此很陌生,所以可能是错误的方式。
但如果有人能够解释我如何保留足够长的数据来正确设置数据,那就太好了。感谢。
答案 0 :(得分:0)
///更新///
好的,事实证明你不能将托管对象作为参数传递,并期望它留在内存中。
我通过在我的函数内部管理我的主要托管请求来解决问题(并在主要上下文中执行所有操作)。
感谢您的帮助。