Cocoaクラスには、ポインターのアドレスを受け入れるメソッドがあります。最も一般的な引数はNSError *
、CoreData検証メソッド(とりわけ)の将来のオブジェクトのアドレスです。このようにして、指定された引数が指すアドレスの場所にカスタムオブジェクトまたは所有オブジェクトを配置することができます。
私の質問は、単純なポインタ引数でそれができないのはなぜですか?たとえば、私がメソッドを持っているとしましょう:
- (void)addObject:(id)someObject toArray:(NSMutableArray *)array;
可変配列を2番目の引数として簡単に渡し、addObject:
それを呼び出すと、メソッド呼び出しの後に配列が変更されます。なぜこれがNSError *
オブジェクトで行われないのですか?メソッドに渡されるポインターは、デフォルトでconstとして定義されていますか?これはアクセスを避けるためNULL
ですか?