Swift 中的核心数据同步

Core Data syncing in Swift

我正在尝试 link 我刚刚从 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()
}

我对此很陌生,所以这可能是错误的方式。

但如果有人能向我解释如何将数据保留足够长的时间以正确设置它,那就太好了。谢谢

/// 更新 ///

好的,事实证明您不能将托管对象作为参数传递并期望它保留在内存中。

我解决了这个问题,方法是在我的函数中为我的 main managed 发出获取请求(并在 main 上下文中执行所有操作)。

感谢您的帮助。