'init'被禁止作为变量名的* part *吗?

时间:2016-07-06 13:30:11

标签: ios swift

我花了3个小时调试错误,最后把它缩小(我认为)到变量名。

我正在使用initMonths(最初的几个月)导致了不可预测的错误,但是当我改为iMonths时它起作用了!

我可以理解防止在它自己上使用init,但如果它被作为变量名的一部分被阻止会很惊讶。这是一个错误还是一个功能?

1 个答案:

答案 0 :(得分:1)

如果它与名称重叠有关,则不一定是错误。有一部分ARC曾经知道应该更新保留计数的时间,你可能会遇到这个问题。

类似的规则适用于名称开头的new使用(出于同样的原因)。

除非它实际上是init函数,否则在任何名称的开头都不要使用init,这当然是容易和明智的。

我可以想象你的问题可能与ARC有关,它不应该参与其中,并且需要一段时间来调用不应该被调用的东西,但那会很奇怪。

我希望这个问题实际上是另一个问题,名称更改还有其他一些影响。最糟糕的情况是,这意味着您遇到了内存问题,并且更改名称已经改变了代码的内存占用,因此您只是将错误移到了其他地方(或者沿着这些行)。