我在使用Swift项目时注意到了奇怪的行为.除了Swift有时会调用错误的方法,我无法解释它.这是非常罕见的,甚至在代码中添加空行也可能导致此错误消失.
让我在截图中解释一下我的意思,接下来我使用可以在Github上找到的SwiftDDP项目的CoreData示例,但是我能够在我自己的项目中看到这些问题.
在这里我们Todos.swift:74可以看到断点,我希望下一个调用应该是类的getId()方法,MeteorClient因为它已经被实例化了:
在Step Into之后,您可以看到ping()相同实例的调用:
导致EXC_BAD_ACCESS异常的下两个步骤:
在我的项目中,我在停止使用单例之前经常看到这个问题,因此它可能与Swift静态内存使用有关,或者由于我对多线程和内存管理的经验不足而无法理解.
我的环境是:
注意:这里我使用AppCode,但我在Xcode中看到的行为相同,如果在Xcode中重现的相同问题无法在AppCode中重现,反之亦然.
如果有人能向我解释这种奇怪的行为,我将感激不尽.
谢谢!