У меня есть следующий метод в моем подклассе UITableViewController:
-(void)populateDataStorage{
NSString *path = [[NSBundle mainBundle] pathForResource:@"FakeData" ofType:@"plist"];
if(path){
NSArray *plistData = [[NSArray alloc] initWithContentsOfFile:path];
NSEnumerator *enumerator = [plistData objectEnumerator];
NSArray *personResults;
Photo *photo;
Person *person;
id currItem = [enumerator nextObject];
while (currItem != nil) {
photo = (Photo *)[NSEntityDescription insertNewObjectForEntityForName:@"Photo" inManagedObjectContext: [[FlickrFetcher sharedInstance] managedObjectContext]];
photo.name = [currItem objectForKey:@"name"];
photo.path = [currItem objectForKey:@"path"];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@", [currItem objectForKey:@"user"]];
personResults = [[FlickrFetcher sharedInstance] fetchManagedObjectsForEntity:@"Person" withPredicate:predicate];
if ([personResults count] > 0) {
person = [personResults objectAtIndex:0];
}
else {
person = (Person *)[NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:[[FlickrFetcher sharedInstance] managedObjectContext]];
person.name = [currItem objectForKey:@"user"];
}
photo.person = person;
[person addPhotosObject:photo];
NSLog(@"Photo %@ added for user %@", photo.name, person.name);
currItem = [enumerator nextObject];
}
[plistData release];
}
}
И я вызываю его в своих приложениях didFinishLaunchingWithOptions метод в моем AppDelegate, метод также находится в том же AppDelegateКогда он вызывается, я получаю сообщение об ошибке при отладке, если я не отлаживаю строку, он запускает метод и загружается без проблем.Если я вообще не отлаживаю, он не вызовет метод.
РЕДАКТИРОВАТЬ: изменил код в соответствии с ответом, проблема остается прежней, если я просто запустить ничего не происходит, но при отладке я получаю ошибку,При отладке всего метода ошибки не отображаются.