核心数据保存和提取
问题描述:
我想用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;
};
}
答
首先,你需要这些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初学者教程。
请参阅https://github.com/RestKit/RestKit – magma