2010-12-03 2 views
0

코드에 코어 데이터가 있는데, 왜 코드 루프 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 [11,965 : 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,453,210 2010-12-03 17 : 37 : 207 11,965] qWrongAnswer1 : qWrongAnswer1_1
2010-12-03 17 : 37 : 51.965 Test_v2 [11,965 : 207] qWrongAnswer2 : qWrongAnswer2_2
2010-12-03 17 51.964 Test_v2 : 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 37 : 17 -03 51.967 Test_v2 37 :

2010-12-03 17 11,965 207]

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

:

2010-12-03 17 363,210 Test_v2 51.974 [11,965 : 207] ID : 1
2010-12-03 17 : 37 : 51.974 Test_v2 [11,965 : 207] qDiff : qDiff1
2010-12-03 17 : 37 : 51.975 Test_v2 [11965 : 207] question : question1
2010-12-03 17:37:51.976 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 [11,965 : 207] qWrongAnswer2 : qWrongAnswer2_2
2010-12-03 17 : 37 : 51.977 Test_v2 [11,965 : 207] qNr 999
2010-12-03 17 : 37 : 51.978 Test_v2 [11965 : 207] qRegDate : 2010-12-03 17 : 3 37 : +0100
2010-12-03 17 7시 51분 Test_v2 51.978 [11,965 : 207]

2010-12-03 17 : 37 : 51.979 Test_v2 [11,965 : 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. 가정은 실제로 db에 2 개 이상의 행이 있다고 가정합니다. 이를 확인하려면 시뮬레이터에서 응용 프로그램을 실행하고 ~/Library/Application Support/iPhone Simulator/-simulator version-/Applications/-some long number에 저장된 데이터베이스 파일을 문서 디렉토리에서 엽니 다.

코드를 조금 더 살펴보면 Context를 읽는 것보다 Context를 읽는 것보다 읽는 것이 더 좋습니다.이 코드를 실행할 때마다 현재 데이터를 RegDate로 사용하여 하나의 객체를 추가합니다.

+0

몇 번이나 나는 바보처럼 느껴진다. 감사합니다 .-) – PeterK

관련 문제