如何将JSON数据从服务器添加到Core Data db

时间:2014-09-08 09:11:13

标签: ios json core-data

我正在使用coreData,我有两个实体“部门”,“员工”和“部门”与员工有一对多的关系。

我的应用程序离线工作正常,我可以添加部门和内部,我可以添加员工。

为了添加Dept我使用NsFetchResultsController。

以下是我添加它的方式

// AddDeptVC.m

-     (void)insertNewObject:(NSString *)DeptName
    {
        NSManagedObjectContext *context = [m_controller managedObjectContext];

                       //Creating a new instance of an managed object.
        Dept *dept = [NSEntityDescription insertNewObjectForEntityForName:@“Dept” inManagedObjectContext:self.managedObjectContext];

        [dept  setDeptName: DeptName];



            //Commit the changes and save the context to store.Before this process all the changes are local.
            NSError *error;
            if (![context save:&error]) {
                // Replace this implementation with code to handle the error appropriately.
                // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.

                //Error handling
        }        
    }

现在我想将这些数据同步到服务器,作为回报,服务器会向我发送一些部门及其员工,我需要将其添加到我的coreData数据库并更新我的表。

为此,我创建了一个名为WebServiceClass的类,它将进行推拉,将数据推送到服务器工作正常,但现在当服务器返回响应时,我这样做了

//这是用webService类编写的。

// WebServiceClass.m

Dept *dept = [NSEntityDescription insertNewObjectForEntityForName:@“Dept” inManagedObjectContext:self.managedObjectContext];

        [dept  setDeptName: [responseDict objectForKey:@"deptName"];



            //Commit the changes and save the context to store.Before this process all the changes are local.
            NSError *error;
            if (![context save:&error]) {
                // Replace this implementation with code to handle the error appropriately.
                // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development.

                //Error handling
        }        

但这不是更新我的表格。

这是我的疑惑。 1)我是否朝着正确的方向前进。 2)如果是,那么为什么我的表没有更新。 3)是他们比这更好的方法。

0 个答案:

没有答案