하나 내지 네 개의 객체가있는 NSMutableDictionary가 있습니다. 포함 된 각 객체는 NSDictionary입니다. 첫 번째 사전은 NSManagedObjects에 대한 약 83,000 개의 참조를 포함합니다. 두 번째 사전에는 약 14,000 개의 동일한 유형의 객체가 포함됩니다.NSMutableDictionary에 대한 설명을 기록 할 수 없습니다.
아래 코드에서 NSLog 문에 아무 것도 발생하지 않습니다. 마치 건너 뛰고 프로그램이 계속 실행됩니다. 그러나 나는 곧이 사전들에 다른 문제들을 가지고있다. 이 문제를 해결하면 나머지 문제를 밝힐 수 있을지도 모른다고 생각했습니다.
pos = @"v";
NSLog(@"%@", pos);
[request setEntity:[NSEntityDescription entityForName:@"SYNSET" inManagedObjectContext:[ManagedObjectContext moc]]];
predicate = [NSPredicate predicateWithFormat:@"partOfSpeech = %@", pos];
[request setPredicate:predicate];
sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"synsetOffset" ascending:YES];
[request setSortDescriptors:[NSArray arrayWithObject:sortDescriptor]];
synsetsArrayForPos = [[ManagedObjectContext moc] executeFetchRequest:request error:&error];
synsetDictionaryMutableForPos = [[NSMutableDictionary alloc] initWithCapacity:100000];
for (SYNSET *synset in synsetsArrayForPos)
[synsetDictionaryMutableForPos setObject:synset forKey:[NSString stringWithFormat:@"%@",synset.synsetOffset]];
[dictionaryMutableOfSynsetDictionaries setObject:[NSDictionary dictionaryWithDictionary:synsetDictionaryMutableForPos] forKey:pos];
NSLog(@"dictionaryMutableOfSynsetDictionaries is class of %@ with description %@", [dictionaryMutableOfSynsetDictionaries class], [dictionaryMutableOfSynsetDictionaries description]);
pos = @"a";
NSLog(@"%@", pos);
나는 네 번 pos
에 대해 다른 값을 제한적으로 견디는 코드, 때마다, dictionaryMutableOfSynsetDictionaries
사전 인쇄 실패 최상위 레벨의 설명을 인쇄하고 NSLog를 반복합니다. `[dictionaryMutableOfSynsetDictionaries description] '을 문자열 상수로 바꾸면 인쇄됩니다.
여기 무슨 일입니까? 이 예상되는 동작입니까 아니면 내가 잘못하고 있습니까?
(이 코드는 큰 사전과 함께 큰 sqlite 데이터베이스의 관계 링크를 완료하는 데 사용되며 배치 가능한 코드에는 사용되지 않습니다 .iOS 시뮬레이터에서만 실행하고 있습니다. 이 업데이트가 완료되면 업데이트 된 데이터베이스를 내 응용 프로그램 번들에 넣을 것입니다.)
매우 긴 문자열을 겉으로보기에는 버려진 NSLog와 비슷한 문제가 있다고 생각합니다. 나는 더 이상 확인할 필요가 없지만이 문제가있는 유일한 것이 아니라는 것을 알고 있습니다. 그런 긴 문자열을 다루지 않는 콘솔 일 수도 있지만? –
'po' 명령을 사용하면 콘솔이 그것을 처리하는 것 같습니다. 그러나이 경우에는 매우 긴 시간이 걸립니다. – Jim