核心数据保存和获取

Posted

技术标签:

【中文标题】核心数据保存和获取【英文标题】:Core Data Saving and Fetching 【发布时间】:2015-10-07 08:05:55 【问题描述】:

我想通过保存和检索将这些数据导入 CoreData 框架。谁能告诉我如何在 CoreData 框架或一些参考教程中实现这一点,请告诉我如何在实体中保存这些数据。

JSON: 
    Options =     (
    );
    Questions =     (
                
            AssessmentId = 4;
            QuestionDesc = "Below are five statements that you may agree or disagree with. Using the 1 - 7 scale below, indicate your agreement with each item by placing the appropriate number on the line preceding that item. Please be open and honest in your responding";
            QuestionId = 18;
            QuestionNo = 1;
            QuestionTypeDesc = Rating;
            QuestionTypeId = 3;
        
    );
    RankingOptions =     (
    );
    RatingOptions =     (
                
            AnswerId = 1;
            OptionDesc = "In most ways my life is close to my ideal. ";
            OptionId = 1;
            OptionValue = 1;
            QuestionId = 18;
        ,
                
            AnswerId = 2;
            OptionDesc = "The conditions of my life are excellent.";
            OptionId = 2;
            OptionValue = 2;
            QuestionId = 18;
        ,
                
            AnswerId = 3;
            OptionDesc = "I am satisfied with my life.";
            OptionId = 3;
            OptionValue = 3;
            QuestionId = 18;
        ,
                
            AnswerId = 4;
            OptionDesc = "So far I have gotten the important things I want in life.";
            OptionId = 4;
            OptionValue = 4;
            QuestionId = 18;
        ,
                
            AnswerId = 5;
            OptionDesc = "If I could live my life over, I would change almost nothing.";
            OptionId = 5;
            OptionValue = 5;
            QuestionId = 18;
        
    );
    ResponseDetails =     
        Msg = "DATA FOUND!";
        ResultStatus = 1;
    ;

【问题讨论】:

见github.com/RestKit/RestKit 【参考方案1】:

首先你需要将这些json数据转换成NSDictionary

NSError* error;
NSDictionary* inDictionary = [NSJSONSerialization JSONObjectWithData:responseData
                                                 options:kNilOptions 
                                                   error:&error];

然后将这个 NSDictionary 保存到核心数据中。

 AppDelegate *sharedDelegate = (AppDelegate *)[[UIApplication   sharedApplication] delegate];
 NSManagedObjectContext *context = [sharedDelegate managedObjectContext];    
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
[fetchRequest setReturnsObjectsAsFaults:NO];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"QestInfo"
                                          inManagedObjectContext:context]; //  Create an Entity in coredata  "QestInfo" (use your entity name)
[fetchRequest setEntity:entity];
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:nil];

QestInfo * qestInfo = [NSEntityDescription
                          insertNewObjectForEntityForName:@"ThreadInfo"
                          inManagedObjectContext:context];

for (QestInfo *info in fetchedObjects)


    if([[inDictionary allKeys] containsObject:@"userEmail"])
    
        if([inDictionary valueForKey:@"userEmail"]!=[NSNull null])
        
            qestInfo. AssessmentId =[inDictionary valueForKey:@"userEmail"];
        
    

.
.// Your key here
.

NSError *error;
if(![context save:&error])
    NSLog(@"SAVE ERROR");

还可以查看此http://www.raywenderlich.com/934/core-data-tutorial-for-ios-getting-started 初学者教程。

【讨论】:

以上是关于核心数据保存和获取的主要内容,如果未能解决你的问题,请参考以下文章

iOS:核心数据异步数据块的获取和保存

核心数据获取请求和未保存的更改

核心数据:NSManagedObjectContext 未保存/获取请求失败,直到应用退出和重新启动

如何获取核心数据来保存/获取我的文件?

保存核心数据中断获取请求

当我们保存在 NSUserDefaults 中时,从核心数据和应用程序中获取“<NULL>”数据会崩溃?