2010-12-03 11 views
0

コードにはCore Dataがありますが、なぜコードループ11ラウンド以下ですか?なぜこのループは11回ですか?

- (void)testingDBmodel { 

NSLog(@">>testingDBmodel<<"); 

//=================DATABASE===================// 
// id 
// qDiff 
// question 
// qRightAnswer 
// qWrongAnswer1 
// qWrongAnswer2 
// qNr 
// qRegDate 

if (managedObjectContext == nil) { managedObjectContext = [(FamQuiz_v2AppDelegate *) 
           [[UIApplication sharedApplication] delegate] managedObjectContext]; } 


NSManagedObjectContext *context = [self managedObjectContext]; 
NSManagedObject *famQuizInfo = [NSEntityDescription 
            insertNewObjectForEntityForName:@"questions" 
            inManagedObjectContext:context]; 
[famQuizInfo setValue:[NSNumber numberWithInt:1] forKey:@"idQ"]; 
[famQuizInfo setValue:@"qDiff1" forKey:@"qDiff"]; 
[famQuizInfo setValue:@"question1" forKey:@"question"]; 
[famQuizInfo setValue:@"qRightAnswer1" forKey:@"qRightAnswer"]; 
[famQuizInfo setValue:@"qWrongAnswer1_1" forKey:@"qWrongAnswer1"]; 
[famQuizInfo setValue:@"qWrongAnswer2_2" forKey:@"qWrongAnswer2"]; 
[famQuizInfo setValue:@"999" forKey:@"qNr"]; 
[famQuizInfo setValue:[NSDate date] forKey:@"qRegDate"]; 

NSError *error; 
if (![context save:&error]) { 
    NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]); 
} 


//==========READ DATABASE==============// 
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init]; 
NSEntityDescription *entity = [NSEntityDescription 
           entityForName:@"questions" inManagedObjectContext:context]; 
[fetchRequest setEntity:entity]; 
NSArray *fetchedObjects = [context executeFetchRequest:fetchRequest error:&error]; 

NSLog(@"\n \n"); 
NSLog(@"\n \n"); 

//のNSLog(@ "fetchObjects番号:%I"、[fetchedObjects.count])ここ

for (NSManagedObject *info in fetchedObjects) { 
    xx = xx + 1; 
    NSLog(@"\n \n"); 
    NSLog(@"id: %i", [[info valueForKey:@"idQ"] intValue]); 
    NSLog(@"qDiff: %@", [info valueForKey:@"qDiff"]); 
    NSLog(@"question: %@", [info valueForKey:@"question"]); 
    NSLog(@"qRightAnswer: %@", [info valueForKey:@"qRightAnswer"]); 
    NSLog(@"qWrongAnswer1: %@", [info valueForKey:@"qWrongAnswer1"]); 
    NSLog(@"qWrongAnswer2: %@", [info valueForKey:@"qWrongAnswer2"]); 
    NSLog(@"qNr: %@", [info valueForKey:@"qNr"]); 
    NSLog(@"qRegDate: %@", [info valueForKey:@"qRegDate"]); 
    NSLog(@"\n \n"); 
    NSLog(@"nr: %i", xx); 
} 

コードです。 NSLog(@ "\ n \ n"); NSLog(@ "fetchedObjects:%@"、fetchedObjects); NSLog(@ "\ n \ n");

2010-12-03 17:37:

int xx = 0; // just to see how many loops 

for (NSManagedObject *info in fetchedObjects) { 
    xx = xx + 1; 
    NSLog(@"\n \n"); 
    NSLog(@"id: %i", [[info valueForKey:@"idQ"] intValue]); 
    NSLog(@"qDiff: %@", [info valueForKey:@"qDiff"]); 
    NSLog(@"question: %@", [info valueForKey:@"question"]); 
    NSLog(@"qRightAnswer: %@", [info valueForKey:@"qRightAnswer"]); 
    NSLog(@"qWrongAnswer1: %@", [info valueForKey:@"qWrongAnswer1"]); 
    NSLog(@"qWrongAnswer2: %@", [info valueForKey:@"qWrongAnswer2"]); 
    NSLog(@"qNr: %@", [info valueForKey:@"qNr"]); 
    NSLog(@"qRegDate: %@", [info valueForKey:@"qRegDate"]); 
    NSLog(@"\n \n"); 
    NSLog(@"nr: %i", xx); 
}   
[fetchRequest release]; 

//NSError* error; 
if(![[famQuizInfo managedObjectContext] save:&error]) { 
    NSLog(@"Failed to save to data store: %@", [error localizedDescription]); 
    NSArray* detailedErrors = [[error userInfo] objectForKey:NSDetailedErrorsKey]; 
    if(detailedErrors != nil && [detailedErrors count] > 0) { 
     for(NSError* detailedError in detailedErrors) { 
      NSLog(@" DetailedError: %@", [detailedError userInfo]); 
     } 
    } 
    else { 
     NSLog(@" %@", [error userInfo]); 
    } 
} 

}ここ

出力の最後の二つのループである51.962 Test_v2 [11965:207] ID:1
2010- 12-03 17:37:51.963 Test_v2 [11965:207] qDiff:qDiff1
2010-12-03 17:37:51.964 Test_v2 [11965:207]質問:質問1
2010-12-03 17:37:51.964 Test_v2 [11965:207] qRightAnswer:qRightAnswer1
2010-12-03 17:37:51.964 Test_v2 [11965:207] qWrongAnswer1:qWrongAnswer1_1
2010-12-03 17:37:51.965 Test_v2 [11965:207] qWrongAnswer2:qWrongAnswer2_2
2010-12-03 17 :37:51.966 Test_v2 [11965:207] qNr:999
2010-12-03 17:37:51.967 Test_v2 [11965:207] qRegDate:2010-12-03 17:36:12 +0100
2010-12 -03 17:37:51.967 Test_v2 [11965:207]

2010-12-03 17:37:51.973 Test_v2 [11965:207] NR:10
2010-12-03 17:37:51.973 Test_v2 [11965:207]

2010-12-03 17:37:51.974 Test_v2 [11965:207] ID:1
2010-12-03 17:37:51.974 Test_v2 [11965:207] qDiff:qDiff1
2010-12-03 17:37:51.975 Test_v2 [11965:207]質問:質問1
2010-12-03 17:37:51.976 Test_v2 [11965:207] qRightAnswer:qRightAnswer1
2010-12-03 17:37:51.976 Test_v2 [11965 :207] qWrongAnswer1:qWrongAnswer1_1
2010-12-03 17:37:51.977 Test_v2 [11965:207] qWrongAnswer2:qWrongAnswer2_2
2010-12-03 17:37:51.977 Test_v2 [11965:207] QNR:999
2010-12-03 17:37:51.978 Test_v2 [11965:207] qRegDate:2010-12-03 17:3 7:51 +0100
2010-12-03 17:37:51.978 Test_v2 [11965:207]

2010-12-03 17:37:51.979 Test_v2 [11965:207] NR:11

+1

私は、この質問にはもう少し編集が必要だと思います。フェッチするオブジェクトについての情報です。 – Eiko

+1

どのコードがループしていますか?あなたはデータベースから返されたオブジェクトを実行しているLOOPを持っていますが、現在オブジェクトのコンテキストにいくつのアイテムがありますか? – DerekH

答えて

0

あなたのコードを見ても、少なくとも2つの異なるオブジェクトがデータベースにあります。qRegDateを持つもの:2010-12-03 17:37:51 +0100、qRegDate:2010-12-03 17:36:12 +0100。あなたが実際にあなたのデータベースに2つ以上(例えば、11)の行を持っているという前提があります。これを確認するには、シミュレータでアプリケーションを実行し、~/Library/Application Support/iPhone Simulator/-simulator version-/Applications/-some long numberに保存されているデータベースファイルをDocumentsディレクトリに開きます。

コードをもう少し見ると、コンテキストを開いて、そこに書き込むよりも、コンテキストを読み込むよりも、コンテキストを保存しています。このコードを実行するたびに、現在のデータをRegDateとして使用することで、もう1つオブジェクトを追加します。

+0

何度か私は全馬鹿のように感じる、感謝:-) – PeterK

関連する問題