5

エラーがnullに戻る原因は何ですか、これは私が持っているものです

    + (BOOL)saveContext:(NSManagedObjectContext *)context
    {
      NSError *error = nil;
      if (![context save:&error]) 
      {
        DLog(@"ERROR %@, %@", error, [error userInfo]);
        UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Sorry"

                                                        message:@"Error Saving the Data" 
                                                       delegate:nil 
                                              cancelButtonTitle:@"OK"
                                              otherButtonTitles:nil];

        [alert show];
        [alert release];

        return NO;
      }
    return YES;
    }

上記のメソッドはクラス メソッドです。エラーに情報がない理由がわかりません。

このメソッドは次のように呼び出されます

[HSCoreDataUtility saveContext:self.managedObjectContext];

modalViewControllerが閉じてNavigationControllerに戻るとき、コンテキストを保存する必要がありますが、エラーが発生しました。保存されていない原因については考えていると思いますが、エラーが発生するべきではありません私に手がかり?しかし、ログには「エラー(ヌル)、(ヌル)」とだけ表示されます

何かご意見は

4

5 に答える 5

8

私はあなたの痛みを生き、生き残ることになります。;)

デバッグに長い時間を費やした後、カスタム オブジェクトの検証メソッドに気付いたのですが、場合によっては NO を返し、エラーを初期化していませんでした。

この問題が発生した場合は、検証オブジェクトのメソッドを確認してください。それはおそらくあなたの問題でもありました。

于 2011-10-23T12:11:02.803 に答える
7

nilその状況が発生していることを確認できる唯一の方法は、コンテキストを渡している場合です。それを防ぐために、そのクラス メソッドの先頭にロジック ボムを配置します。

実際のところ、この少量のコードに対してクラス メソッドを作成するつもりはありません。しかし、ポイントはまだ立っています。コンテキストを確認しnilます。

于 2010-11-09T20:42:32.417 に答える
0

うーん、%@ によってエラーが詳細になるかどうかはわかりません。 [error localizedDescription]?

于 2010-11-09T20:15:03.700 に答える
0

私はたまたまこの問題に遭遇し、長時間のデバッグの後、それは NSError* エラーの宣言が重複していることが原因であることがわかりました。

NSError* error = nil;

// some code

if (!error)
{
    NSError* error = nil;

    // your code
}

実際には例外がありますが、エラーはゼロになります。

于 2012-04-30T05:53:29.330 に答える