私はこの方法を扱う私のエラーをコーディングするのが習慣になった:NSError:エラーを検出するためにnilを使用すると、実際にエラー報告がオフになりますか?
NSError* error = nil;
NSDictionary *attribs = [[NSFileManager defaultManager] removeItemAtPath:fullPath error:&error];
if (error != nil) {
DLogErr(@"Unable to remove file: error %@, %@", error, [error userInfo]);
return;
}
しかし、私はこの間違ったを得たように思えドキュメントを見て:
- (BOOL)removeItemAtPath:(NSString *)path error:(NSError **)error
If an error occurs, upon return contains an NSError object that describes the problem. Pass NULL if you do not want error information.
技術的にはありませんがあるがnilとNULLとの違いは、実際にはこれを無効にしていることを意味します(上記の例の削除が失敗したとしてもエラーメッセージは表示されません)。 これをコードする良い方法はありますか?
ありがとうございました。
nil'と 'NULL'、および' 'Nil'に差があります。 'nil'はインスタンスオブジェクト、' Nil'はクラスオブジェクト、 'NULL'は他のものです。 '&error'はメモリアドレスでオブジェクトではないので' NULL'を使用してください – Philip007