在我的ios应用程序中,我正在使用魔术记录..首先,我从服务器检索json数据。然后将json数据存储到魔术记录中。问题是,当我从魔术记录中获取数据时,我会反复获取数据。我想在tableview中显示神奇的记录数据。如果我每次菜单项计数增加时都运行该应用程序。

json回应:

应用菜单列表项响应:

{

状态=成功;

数据=



{

文字=“紧急情况摘要”;

},

{

文字=“新问题”;

},

{

文字=“新的家族史”;

}

我的神奇记录是:

列表项(实体:AppMenuList; ID:0x7b10fb80;数据:

{

menuItemName =“紧急情况摘要”;

列表项(实体:AppMenuList; ID:0x7b10fb90

menuItemName =“紧急情况摘要”;

列表项(实体:AppMenuList; ID:0x7b10fba0

menuItemName =“新问题”

我正在像这样从魔术记录中获取数据:


(void)parseGetAppMenuListResponse:(NSDictionary *)mediaResponse {


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
NSDictionary * menuData = [[mediaResponse objectForKey:@“ data”] objectAtIndex:iCount];

//检查数据库中是否存在记录,然后删除记录

对于(AppMenuList * dbMenuListArray中的列表){

如果([list.userID isEqualToString:[[UserDefaults defaultsInstance] getUserId]]){

[列表MR_deleteEntity];

}

NSLog(@“列出项目%@”,list);

}

最佳答案

[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,而无需等待,则多个请求几乎可以同时导致多次保存,因此您将获得重复的记录。

关于objective-c - 魔术记录-在Objective-C中出现重复记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36978838/

10-14 20:40
查看更多