Печать userInfo NSError из основных данных бросков EXC_BAD_ALLOC - PullRequest
1 голос
/ 21 сентября 2010

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

1 Ответ

2 голосов
/ 21 сентября 2010

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

...