我正在使用AFNetworking
来调用Web服务所有下拉数据。数据会放入responseobject
,然后我会尝试将其放入CoreData
。
由于某种原因,数据未存储到CoreData
实体中。我的代码:
for (int i = 0; i < [[responseObject valueForKey:@"belief"] count]; i++) {
NSString * topicID = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"_id"];
NSString * title = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"title"];
NSString * body = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"body"];
NSString * category = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"category"];
NSNumber * nFor = @([[[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"nFor"] intValue]);
NSLog(@"Title being sent is %@",title);
NSLog(@"Number of votes sent is %@",nFor);
ExploreCD *exploreCD = [ExploreCD MR_createEntity];
exploreCD.topicID = topicID;
exploreCD.title = title;
exploreCD.body = body;
exploreCD.category = category;
exploreCD.nFor = nFor;
NSLog(@"Title being saved is %@",exploreCD.title);
NSLog(@"Number of votes saved is %@",exploreCD.nFor);
//[NSManagedObjectContext MR_contextForCurrentThread];
}
以下是我的代码中的NSLogs
正在读取的内容。任何帮助将不胜感激
2014-03-28 18:49:39.677 Karmo[8328:60b] Title being sent is a odio in
2014-03-28 18:49:39.677 Karmo[8328:60b] Number of votes sent is 0
2014-03-28 18:49:39.677 Karmo[8328:60b] Title being saved is (null)
2014-03-28 18:49:39.677 Karmo[8328:60b] Number of votes saved is (null)
2014-03-28 18:49:39.678 Karmo[8328:60b] Title being sent is amet nunc viverra dapibus
2014-03-28 18:49:39.678 Karmo[8328:60b] Number of votes sent is 0
2014-03-28 18:49:39.678 Karmo[8328:60b] Title being saved is (null)
2014-03-28 18:49:39.678 Karmo[8328:60b] Number of votes saved is (null)
2014-03-28 18:49:39.678 Karmo[8328:60b] Title being sent is semper sapien a libero nam
2014-03-28 18:49:39.678 Karmo[8328:60b] Number of votes sent is 2
2014-03-28 18:49:39.678 Karmo[8328:60b] Title being saved is (null)
2014-03-28 18:49:39.678 Karmo[8328:60b] Number of votes saved is (null)
2014-03-28 18:49:39.679 Karmo[8328:60b] -[NSManagedObjectContext(MagicalSaves) MR_saveWithOptions:completion:](0x109346550) NO CHANGES IN ** DEFAULT ** CONTEXT - NOT SAVING
我在afnetworkwing
代码的成功部分中完成for循环后,使用此代码保存这些新的CoreData实体。
[MagicalRecord saveUsingCurrentThreadContextWithBlock:nil completion:^(BOOL success, NSError *error) {
exploreCellData = [[ExploreCD MR_findAll] mutableCopy];
}];
答案 0 :(得分:0)
这很正常。你只创建了enities但是你忘了保存它们!
我认为你可以这样做:
NSManagedObjectContext * context = [NSManagedObjectContext MR_context]; // New context
for (int i = 0; i < [[responseObject valueForKey:@"belief"] count]; i++) {
NSString * topicID = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"_id"];
NSString * title = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"title"];
NSString * body = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"body"];
NSString * category = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"category"];
NSNumber * nFor = @([[[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"nFor"] intValue]);
NSLog(@"Title being sent is %@",title);
NSLog(@"Number of votes sent is %@",nFor);
ExploreCD *exploreCD = [ExploreCD MR_createEntityInContext:context];
exploreCD.topicID = topicID;
exploreCD.title = title;
exploreCD.body = body;
exploreCD.category = category;
exploreCD.nFor = nFor;
NSLog(@"Title being saved is %@",exploreCD.title);
NSLog(@"Number of votes saved is %@",exploreCD.nFor);
}
// Save the datas
[context MR_saveToPersistentStoreWithCompletion:^(BOOL success, NSError *error) {
if (!success)
NSLog(@"Error: %@", [error localizedDescription]);
}];
答案 1 :(得分:-1)
我认为你需要保存。比如saveWithBlock
等。
[MagicalRecord saveWithBlock:^(NSManagedObjectContext *localContext) {
for (int i = 0; i < [[responseObject valueForKey:@"belief"] count]; i++) {
NSString * topicID = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"_id"];
NSString * title = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"title"];
NSString * body = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"body"];
NSString * category = [[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"category"];
NSNumber * nFor = @([[[[[responseObject valueForKey:@"belief"] valueForKey:@"topic"] objectAtIndex:i] valueForKey:@"nFor"] intValue]);
NSLog(@"Title being sent is %@",title);
NSLog(@"Number of votes sent is %@",nFor);
ExploreCD *exploreCD = [ExploreCD MR_createInContext:localContext];
exploreCD.topicID = topicID;
exploreCD.title = title;
exploreCD.body = body;
exploreCD.category = category;
exploreCD.nFor = nFor;
NSLog(@"Title being saved is %@",exploreCD.title);
NSLog(@"Number of votes saved is %@",exploreCD.nFor);
//[NSManagedObjectContext MR_contextForCurrentThread];
}
}];