我花了3个小时调试错误,最后把它缩小(我认为)到变量名。
我正在使用initMonths(最初的几个月)导致了不可预测的错误,但是当我改为iMonths时它起作用了!
我可以理解防止在它自己上使用init,但如果它被作为变量名的一部分被阻止会很惊讶。这是一个错误还是一个功能?
答案 0 :(得分:1)
如果它与名称重叠有关,则不一定是错误。有一部分ARC曾经知道应该更新保留计数的时间,你可能会遇到这个问题。
类似的规则适用于名称开头的new
使用(出于同样的原因)。
除非它实际上是init
函数,否则在任何名称的开头都不要使用init
,这当然是容易和明智的。
我可以想象你的问题可能与ARC有关,它不应该参与其中,并且需要一段时间来调用不应该被调用的东西,但那会很奇怪。
我希望这个问题实际上是另一个问题,名称更改还有其他一些影响。最糟糕的情况是,这意味着您遇到了内存问题,并且更改名称已经改变了代码的内存占用,因此您只是将错误移到了其他地方(或者沿着这些行)。