0
我試圖在數據庫中放入一些數據。我在其他視圖中也使用了以下代碼。它有效。但是在這個觀點上它不起作用。你可以看到下面的代碼。未將數據加載到核心數據庫中
- (void)fetchKlassementIntoDocument:(UIManagedDocument *)document
{
NSLog(@"log");
dispatch_queue_t fetchKlassement = dispatch_queue_create("klassement fetcher", NULL);
dispatch_async(fetchKlassement, ^{
NSLog(@"Log2");
NSLog(@"log3");
NSArray *klassement = [GenkData getRanking];
[document.managedObjectContext performBlock:^{
NSLog(@"klassement array %@",klassement);
for (NSDictionary *genkInfo in klassement) {
[Klassement klassementWithGenkInfo:genkInfo inManagedObjectContext:document.managedObjectContext];
NSLog(@"inserted klassement");
}
NSLog(@"Log4");
[document saveToURL:document.fileURL forSaveOperation:UIDocumentSaveForOverwriting completionHandler:NULL];
NSLog(@"Log5");
NSLog(@"Log 6");
}];
});
NSLog(@"Log7");
dispatch_release(fetchKlassement);
NSLog(@"Log8");
}
這給出了以下錯誤日誌。
2012-10-25 10:50:07.527 RacingGenk[17989:907] log
2012-10-25 10:50:07.528 RacingGenk[17989:907] Log7
2012-10-25 10:50:07.529 RacingGenk[17989:907] Log8
2012-10-25 10:50:07.531 RacingGenk[17989:4f03] Log2
2012-10-25 10:50:07.532 RacingGenk[17989:4f03] log3
2012-10-25 10:50:07.604 RacingGenk[17989:907] *** Terminating app due to uncaught exception 'NSRangeException', reason: '*** -[__NSArrayI objectAtIndex:]: index 0 beyond bounds for empty array'
獲取數據後,我用這些數據填充tableview。我認爲這就是錯誤出現的原因。但有人可以說我出了什麼問題嗎?
親切的問候。
當我把這行代碼在我的viewDidAppear與日誌。它會正確記錄它 –
做一件事,在接口中添加一個類級別的NSArray變量並將其分配到viewDidLoad方法中。然後使用[GenkData getRanking]將值分配給它。方法。另外在分配它之前放置這條線:NSLog(@「找到的數據:%@」,[GenkData getRanking]);確保您從方法中獲取數據。 – iCreative
好的,謝謝。我已經嘗試過,並且該方法會返回數據。我認爲這與GCD有關。 –