Печать userInfo ошибки NSError из Core Data выдает EXC_BAD_ALLOC

Я использую этот код (из ошибки 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 не сказал мне ничего полезного.


person MikeQ    schedule 20.09.2010    source источник


Ответы (1)


Дох. Я назвал один из моих столбцов (и связанное с ним свойство присваивания) «описанием», что, конечно, переопределяет метод «description» NSObject, вызывая плохие вещи. Глупый я.

person MikeQ    schedule 21.09.2010