核心数据保存和提取

问题描述:

我想用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; 
    }; 
} 
+0

请参阅https://github.com/RestKit/RestKit – magma

首先,你需要这些JSON数据这NSDictionary中转换成的NSDictionary

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

然后保存到核心数据。

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初学者教程。