在我的应用程序中,我使用了两个 NSMutableDictionaries。让我们称它们为 basicDictionary 和 refreshDictionary。
在 basicDictionary 我有价值观,让我们说
key:"1" value:"2000" photo:someUIImage //假设我想跟踪玩家的得分 key:"2" value:"1500" photo:someUIImage2 key:"3" value:"1500" photo:someUIImage3键:“4” 值:“1500” 照片:someUIImage4
key 代表玩家 id,rest 很清楚。
我每 20 秒调用一次服务器 api 来刷新玩家的分数。因为我不想加载照片以及即时使用刷新调用给我带来只有玩家 ID 和他的实际分数。
所以每 20 秒我就会得到保存在 refreshDictionary 中的数据。只有 id 和该 id 的当前分数。
刷新字典示例:
键:“1” 值:“2500” 键:“2” 值:“2800” 键:“3” 值:“2700”
我用新值更新了我的 tableView。如您所见,我只获得了 3 个玩家的数据,因为玩家 4 删除了他的个人资料。现在我的问题是,如何更新 basicDictionary 以删除播放器 4?
我知道我应该使用if (!([basicDictionary isEqualToDictionary:refreshDictionary))
它,但是它不会告诉我它们在哪个键上不相等。
那么你们会怎么做呢?我应该在嵌套循环中遍历它们吗?当字典更大时,这似乎会消耗大量时间。哦,顺便说一句,我的字典总是以相同的方式排序(按玩家 ID)
我的想法是,我比较这两个字典
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
if (refresh)
{ //compare dictionaries and modify basicDictionary that is data source for my tableview by deleting where key doesn't match
}