の線に沿った方法が欲しい
setData:(SomeClassName *)data inPosition:(NSInteger)position
実装では、位置として nil を確認します。アイデアは、ポジションが提供されている場合はそれを使用し、提供されていない場合は自動的に割り当てるというものです。
問題は、コンパイラの警告なしにこれに NULL または nil を渡すことができないことです。
このパターンは別の場所で見たことがあると思います (オプションのパラメーター)。NSIndexPath に関連していた可能性があると思います。
ラッパーとして NSNumber を使用する必要がありますか? それとも何か他の秘密がありますか?
余談ですが、setData: と setData:inPosition: という別々のメソッドを使用することを検討しました。しかし、問題は、「データ」が通常の ivar ではなくコア データによって作成された属性であるため、実際に値を設定したい場合は、すべての KVO メッセージを送信することを覚えておく必要があることです。たとえば、setData:withPosition 内では、標準の setData: を呼び出すことはできません。位置に対して行ったすべての作業が上書きされます。
また、これら2つの「より良い」解決策を知ることにも興味があります.