3
NSDictionaryのは、次のメソッドのシグネチャがあります。ブロックをiOSのnotFoundMarkerの値として使用できますか?
- (NSArray *)objectsForKeys:(NSArray *)keys notFoundMarker:(id)anObject;
私の質問(複数可):
- は
notFoundMarker
に使用する合理的なデフォルトはnilですか? notFoundMarker
としてキー(値が見つからなかったもの)を戻すことはできますか?これは、キーと値が異なるオブジェクト型であり、まだ欠けているものを知ることができる場合に便利です。- ブロックを
notFoundMarker
の値として使用できますか。実際には実行されますか?または、ブロックのスタック割り当てアドレスは単に返されますか? notFoundMarker
の値として試して使用するのに本当に悪い点は何ですか?
あなたが質問について間違っている1. 'nil'は中値として許可されていません。実際には は、あなたはおそらく、あなたがこのような2用の欲しいものを達成できますコレクション。 'notFoundMarker:nil'を設定すると、ランタイム例外が発生します。代りに '[NSNull null]'を使用してください。これは、コレクションのnull値を表すことを意図しています。 – Eliot
それは本当だとは思わない。 'NSDictionary'で' nil'をキーとして使用しようとすると、ランタイム例外がスローされますが、問題なしでNSArrayに 'nil'を持たせることは可能です。 –
明確にするために、上記の意味は、問題なくNSArrayに 'nil'を追加できるということです。この場合、 '[NSNull null]'のほうが優れています。そうでなければ、上記の私の例はうまくいきません。これを反映するように答えを編集します。それを指摘してくれてありがとう:) –