//エラーの発生する可能性のあるメソッド
- (BOOL) setCategory:(NSString*)theCategory error:(NSError**)outError {
//処理
if (outError) {
*outError = [NSError errorWithDomain:@"ドメイン" code:-1 userInfo:nil];
return NO;
}
return YES;
}
//呼び出し側
NSError *error = nil;
BOOL success = [self setCategory:@"TEST" error:&error];
//エラー発生確認
//メソッドから処理結果判定が行えない場合はif(error)により判定を行う
if (!success) {
NSLog(@"%@ %ld %@",[error domain],(long)[error code],[[error userInfo] description]);
}
&errorでNSErrorのポインタを渡してメソッド側でNSErrorオブジェクトを生成
その後メソッドの戻り値(またはNSErrorオブジェクトの有無)によりエラー内容を判定する。