ios - 'init' 是否被禁止作为变量名的*部分*?

标签 ios swift

我只花了 3 个小时调试一个错误,最后(我认为)将错误范围缩小到变量名。

我使用的是 initMonths(初始月份),这导致了不可预测的错误,但是当我改为 iMonths 时,它起作用了!

我可以理解单独阻止使用 init,但如果它只是作为变量名的一部分被阻止,我会感到惊讶。这是错误还是功能?

最佳答案

如果它只是与名称重叠有关,则不一定是错误。 ARC 的一部分用于知道何时应该更新保留计数,您可能会遇到这种情况。

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

避免在任何名称的开头使用 init 无疑是简单而明智的,除非它实际上是一个 init 函数。

我可以想象,您的问题可能与 ARC 介入本不该参与的事情有关,并且需要一段时间才能调用不应该调用的内容,但这很奇怪。

我预计这个问题实际上是另外一回事,而且名称更改还有一些其他影响。最坏的情况意味着您有内存问题,并且更改名称会改变代码的内存占用,因此您只是将错误移到了其他地方(或类似的地方)。

关于ios - 'init' 是否被禁止作为变量名的*部分*?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38225282/

相关文章:

ios - 为什么 removeAllObservers() 在 deinit 中不起作用?

ios - 如何获取 UIAlertView 消息的字体大小

ios - MPSCNNConvolutionDescriptor neuronFilter 已弃用

swift - 如何处理两个 TableView 关联?

arrays - 从 Parse 获取的数据未保存在数组中 - Swift 2.0

ios - 添加 UICollectionViewController 作为子 UIView 崩溃

ios - 同一对象上的 2 个动画,仅最后一次显示。如何显示第一个没有嵌套完成 block 的?

objective-c - 即使 UIResponder 对象放弃其第一响应者状态,键盘也不会关闭

ios - 使用动画减少 View 的宽度

iOS UiCollectionView - 使用自定义 UiCollectionViewLayout 重新加载数据