鑑於我已經與核心數據的代碼,爲什麼下面的代碼循環11輪?爲什麼這個循環十一次?
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);
}
下面是代碼:
- (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]); NSLog(@「\ n \ n」); NSLog(@「fetchedObjects:%@」,fetchedObjects); NSLog(@「\ n \ n」);
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]);
}
}
}
這裏是輸出的最後兩個循環:
2010-12-03 17:37: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] question:question1
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] question:question1
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
我想這個問題需要一些更多的編輯...和你獲取的對象的信息。 – Eiko 2010-12-03 16:49:55
哪些代碼正在循環?你有一個循環遍歷從你的數據庫返回的對象,目前你的對象上下文中有多少項目? – DerekH 2010-12-03 16:50:19