error
逆参照を試みる前に、nil でないことを確認する必要があります。また、ローカルの NSError も必要ありません。そのコードを次のように記述します。
- (void)parseSomething:(id)targetObject error:(NSError **)error {
[myParser parse:targetObject error:error];
}
しかし、ロケール変数が本当に必要な場合 (またはデモンストレーション目的)。次にこれ:
- (void)parseSomething:(id)targetObject error:(NSError **)error {
NSError *parserError = nil;
[myParser parse:targetObject error:&parserError];
if (error && parserError) {
*error = parserError;
}
}
また、このような out パラメーターを持つほとんどのメソッドには、NSError
通常、BOOL 戻り値またはその他の戻り値があり、成功したかどうかを示します。エラーがあったかどうかを示すために、エラー パラメータに頼るべきではありません。
- (BOOL)parseSomething:(id)targetObject error:(NSError **)error {
NSError *parserError = nil;
BOOL ok = [myParser parse:targetObject error:&parserError];
if (error && parserError) {
*error = parserError;
}
return ok;
}