0

の線に沿った方法が欲しい

setData:(SomeClassName *)data inPosition:(NSInteger)position

実装では、位置として nil を確認します。アイデアは、ポジションが提供されている場合はそれを使用し、提供されていない場合は自動的に割り当てるというものです。

問題は、コンパイラの警告なしにこれに NULL または nil を渡すことができないことです。

このパターンは別の場所で見たことがあると思います (オプションのパラメーター)。NSIndexPath に関連していた可能性があると思います。

ラッパーとして NSNumber を使用する必要がありますか? それとも何か他の秘密がありますか?

余談ですが、setData: と setData:inPosition: という別々のメソッドを使用することを検討しました。しかし、問題は、「データ」が通常の ivar ではなくコア データによって作成された属性であるため、実際に値を設定したい場合は、すべての KVO メッセージを送信することを覚えておく必要があることです。たとえば、setData:withPosition 内では、標準の setData: を呼び出すことはできません。位置に対して行ったすべての作業が上書きされます。

また、これら2つの「より良い」解決策を知ることにも興味があります.

4

3 に答える 3

1

NSNumber ラッパーの使用はかなり標準的です。

もちろん、常に -1 や NSNotFound を渡すことも、独自の n/a 値を定義することもできます。

于 2012-04-04T02:41:19.837 に答える