1

私はこのコード(保存中のiphone Core Data Unresolvedエラーから)を使用して、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は私に有用なことを何も教えてくれませんでした。

4

1 に答える 1

2

ドー。私は自分の列の1つ(および関連する割り当てプロパティ)に「description」という名前を付けました。これはもちろんNSObjectの「description」メソッドをオーバーライドし、悪いことを引き起こします。愚かな私。

于 2010-09-21T00:09:21.870 に答える