我有一系列字典,代表抽认卡。其中一个键值对是pgFinishedNumber
和工作簿中出现抽认卡的页面。用户还可以在应用程序中设置一个值pagesDone
,来跟踪他们在工作簿中的进度。
我正在使用一个块来通过主闪存卡阵列并将卡片添加到另一个阵列,称为myDailyArray
. 我想要移动页码大于值的抽认卡pagesDone
,但我有两个问题。
当多个抽认卡具有相同的页码时,会出现第一个问题。发生这种情况时,只有第一张卡包含在 myDailyArray
. 第二个问题发生在用户指出他所在的页码没有新的抽认卡时。发生这种情况时,阵列中的下一个抽认卡会提前添加。
我的块的代码在 中viewWillAppear:
,如下所示:
- (void)viewWillAppear:(BOOL)animated {
//......some code
[theLevelArray.level1Array enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop)
{
NSMutableDictionary *dictDaily = [theLevelArray.level1Array objectAtIndex:idx];
[self.myDailyArray addObject:dictDaily];
int pgFinishedNumber = [[dictDaily objectForKey: @"pgFinishedNumber"] intValue];
if (pagesDone <= pgFinishedNumber)
{
*stop = YES;
}
}];
例如,工作簿的第 3 页介绍了两张抽认卡。这两张卡的NSDictionary
s 都具有3
的值pgFinishedNumber
。当我输入3
用户默认值pagesDone
然后运行应用程序时,只有这两个中的第一个被添加到myDailyArray
. 当我将 更改为pagesDone
时4
,不仅将两个pgFinishedNumber
值为“3”的抽认卡添加到myDailyArray
,而且下一个对象的pgFinishedNumber
值为5
! 我很迷惑。