在我的ios应用程序中,我正在使用魔法记录..首先,我正在从服务器检索json数据。然后应将json数据存储到魔法记录中。问题是当我从魔法记录中获取数据时,我反复获取数据。我想在tableview中显示神奇的记录数据。如果我每次菜单项计数增加时运行应用程序。
json回复:
应用菜单列表项目响应:
{
状态=成功;
data =
(
{
文字="紧急摘要";
},
{
文字="新问题&#34 ;;
},
{
Text =" Family History New";
}
我的神奇记录回应是:
列出项目(实体:AppMenuList; id:0x7b10fb80;数据:
{
menuItemName ="紧急摘要";
列出项目(实体:AppMenuList; id:0x7b10fb90
menuItemName ="紧急摘要";
列出项目(实体:AppMenuList; id:0x7b10fba0
menuItemName =“问题新”
我从这样的魔法记录中获取数据:
NSArray * dbMenuListArray = [AppMenuList MR_findAll];
NSArray * menuListDetailsArray = [MenuListDetails MR_findAll];
DLog(@" AppMenuList:%@",[AppMenuList MR_findAll]);
DLog(@" MenuListDetails:%@",[MenuListDetails MR_findAll]);
DLog(@" MenuResponse:%@",mediaResponse);
for(int iCount = 0; iCount< [[mediaResponse objectForKey:@" data"] count]; iCount ++){
NSDictionary * menuData = [[mediaResponse objectForKey:@" data"] objectAtIndex:iCount];
//检查数据库中是否存在记录,然后删除记录
for(dbMenuListArray中的AppMenuList *列表){
if([list.userID isEqualToString:[[UserDefaults defaultsInstance] getUserId]]){
[list MR_deleteEntity];
}
NSLog(@"列出项目%@",列表);
}
答案 0 :(得分:1)
[MagicalRecord saveWithBlockAndWait:^(NSManagedObjectContext *localContext) {
// Do your work to be saved here, against the `localContext` instance
// Everything you do in this block will occur on a background thread
}
如果你做的是saveWithBlock
而没有等待,那么多个请求几乎同时会导致多次保存,因此你会得到重复的记录。
答案 1 :(得分:0)
好的,我试着这样做:
[[NSManagedObjectContext MR_rootSavingContext] performBlockAndWait:^{
//Get your data.
}];
我使用[MyEntity MR_findAllWithPredicate:myPredicate]获取数据。
希望它会有用。