小编roz*_*ozd的帖子

Swift有时会调用错误的方法

我在使用Swift项目时注意到了奇怪的行为.除了Swift有时会调用错误的方法,我无法解释它.这是非常罕见的,甚至在代码中添加空行也可能导致此错误消失.

让我在截图中解释一下我的意思,接下来我使用可以在Github上找到的SwiftDDP项目的CoreData示例,但是我能够在我自己的项目中看到这些问题.

在这里我们Todos.swift:74可以看到断点,我希望下一个调用应该是类的getId()方法,MeteorClient因为它已经被实例化了:

截图1

在Step Into之后,您可以看到ping()相同实例的调用:

截图2

导致EXC_BAD_ACCESS异常的下两个步骤:

截图3

在我的项目中,我在停止使用单例之前经常看到这个问题,因此它可能与Swift静态内存使用有关,或者由于我对多线程和内存管理的经验不足而无法理解.

我的环境是:

  • AppCode OC-145.184.11
  • Xcode版本7.2.1(7C1002)
  • iOS 9.2 SDK
  • Apple Swift 2.1.1版(swiftlang-700.1.101.15 clang-700.1.81)

注意:这里我使用AppCode,但我在Xcode中看到的行为相同,如果在Xcode中重现的相同问题无法在AppCode中重现,反之亦然.

如果有人能向我解释这种奇怪的行为,我将感激不尽.

谢谢!

ios swift

30
推荐指数
2
解决办法
1789
查看次数

标签 统计

ios ×1

swift ×1