从Core Data打印NSError的userInfo会抛出EXC_BAD_ALLOC

时间:2010-09-20 20:43:10

标签: iphone core-data exc-bad-access nserror

我正在使用此代码(来自iphone Core Data Unresolved error while saving)来打印更详细的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];
}

问题在于,每当我尝试访问嵌套NSError的userInfo对象时,应用程序都会崩溃EXC_BAD_ALLOC。

当我创建新的NSManagedObject并用数据填充它时,会生成有问题的错误。我在对象上分配的所有属性都保留了分配给它们的所有属性,但似乎没有正确保留某些属性。

我该如何追踪? NSZombieEnabled并没有告诉我任何有用的东西。

1 个答案:

答案 0 :(得分:2)

卫生署。我已将我的一个列(和相关的赋值属性)命名为“description”,这当然会覆盖NSObject的'description'方法,从而导致错误的操作。愚蠢的我。