Я использую этот код (из ошибки iphone Core Data Unresolved, пока save), чтобы распечатать более подробное описание объекта NSError:
- (NSString*)debugDescription
{
NSMutableArray* errorLines = [NSMutableArray array];
[errorLines addObject:[NSString stringWithFormat:@"Failed to save to data store: %@", [self localizedDescription]]];
NSArray* detailedErrors = [[self userInfo] objectForKey:NSDetailedErrorsKey];
if (detailedErrors != nil && [detailedErrors count] > 0)
{
for (NSError* detailedError in detailedErrors)
{
// The following line crashes the app
[errorLines addObject:[NSString stringWithFormat:@" DetailedError: %@", [detailedError userInfo]]];
}
}
else
{
[errorLines addObject:[NSString stringWithFormat:@" %@", [self userInfo]]];
}
return [errorLines description];
}
Проблема в том, что всякий раз, когда я пытаюсь получить доступ к объекту userInfo вложенного NSError, приложение вылетает с EXC_BAD_ALLOC.
Рассматриваемая ошибка возникает, когда я создаю новый NSManagedObject и заполняю его данными. Все свойства, которые я назначаю объекту, сохраняют все, что им присвоено, но похоже, что что-то сохраняется неправильно.
Как я могу это отследить? NSZombieEnabled не сказал мне ничего полезного.