我想有一种方法
setData:(SomeClassName *)data inPosition:(NSInteger)position
在实现中,检查 nil 作为位置。这个想法是,如果提供了位置,我将使用它,如果没有,我将自动分配它。
问题是我不能在没有编译器警告的情况下将 NULL 或 nil 传递给它。
我相信我在其他地方看到过这种模式(可选参数)。我认为它可能与 NSIndexPath 有关。
我应该使用 NSNumber 作为包装器吗?还是有其他秘密?
顺便说一句,我考虑使用单独的方法 - setData: 和 setData:inPosition:。但问题是“数据”是一个核心数据创建属性,而不是常规 ivar,所以当我真正想要设置该值时,我必须记住发送所有 KVO 消息。例如,在 setData:withPosition 中,我不能调用标准的 setData: - 它会覆盖我对该位置所做的任何工作。
也会有兴趣知道这两者中哪个是“更好”的解决方案。