フラッシュカードを表す一連の辞書があります。キーと値のペアの 1 つはpgFinishedNumber、フラッシュカードがワークブックに表示されるページです。pagesDoneユーザーは、ワークブックの進行状況を追跡するために、アプリで値も設定します。
ブロックを使用して、マスター フラッシュカード アレイを通過し、カードを という別のアレイに追加しますmyDailyArray。ページ番号が の値より大きいフラッシュカードをpagesDone移動したいのですが、2 つの問題があります。
最初の問題は、複数のフラッシュカードに同じページ番号がある場合に発生します。この場合、最初のカードのみが に含まれ myDailyArrayます。2 番目の問題は、新しいフラッシュ カードがないページ番号にいることをユーザーが示した場合に発生します。これが発生すると、アレイ内の次のフラッシュカードが事前に追加されます。
にある私のブロックのコードは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 ページでは、2 つのフラッシュ カードが紹介されています。これらNSDictionary2 枚のカードの は、両方とも3の値として を持っていますpgFinishedNumber。3ユーザーのデフォルトを入力しpagesDoneてアプリを実行すると、最初の 2 つだけが に追加されmyDailyArrayます。を に変更するpagesDoneと、 「3」4の値を持つ両方のフラッシュカードがに追加されるだけでなく、値が!の次のオブジェクトも追加されます。私は当惑しています。pgFinishedNumbermyDailyArraypgFinishedNumber5