何かを処理するメソッドで引数にNSErrorを渡すものがあります。
メソッド実行後にエラーになった場合にNSErrorにエラーメッセージが帰ってきて、エラーメッセージから解決方法を知ることができます。
▼下記のコードではドキュメントフォルダ内plistファイルを削除するもので、エラーのチェックを行なっています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
NSError *error = nil;
id filename = [[NSString alloc] initWithFormat:@"Documents/settings.plist"];
id path = [NSHomeDirectory() stringByAppendingPathComponent:filename];
NSFileManager *tmpMng = [NSFileManager defaultManager];
[tmpMng removeItemAtPath:path error:&error];
if (!error){
//正常
NSLog(@"plist delete Succeeded.");
}else{
//エラー発生
NSString *message = [error localizedDescription];
NSLog(@"plist delete Faild. message:%@",massage);
} |
使うときに
1 |
NSError *error; |
と、初期値を入れずに使ってしまうと、NSErrorを参照した時に、参照先が適当な値になっているためにEXC_BAD_ACCESSが発生してしまいます。
NSError生成時にnilを指定して初期化することで回避できます。
1 |
NSError *error = nil; |
Related posts: