フラッシュカードを表す一連の辞書があります。キーと値のペアの 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 つのフラッシュ カードが紹介されています。これらNSDictionary
2 枚のカードの は、両方とも3
の値として を持っていますpgFinishedNumber
。3
ユーザーのデフォルトを入力しpagesDone
てアプリを実行すると、最初の 2 つだけが に追加されmyDailyArray
ます。を に変更するpagesDone
と、 「3」4
の値を持つ両方のフラッシュカードがに追加されるだけでなく、値が!の次のオブジェクトも追加されます。私は当惑しています。pgFinishedNumber
myDailyArray
pgFinishedNumber
5