我正在开发一个 iOS 应用程序,我发现,在 Xcode 中调试时,无论是使用设备还是模拟器,有时即使在调用一次的方法中设置了一些断点,也会多次到达。
例如,我在调用通知中心的代码行设置了一个断点postNotificationName:
,这个断点到达了一次,但是我在此类通知的接收方设置的断点到达了两次。这是同一个线程。
类似地,我有时发现return
即使只调用一次方法,返回对象的方法行也不止一次到达,首先nil
为对象返回一个值,然后对象在随后的断点停止处取期望值. 断点也指示相同的线程。
为什么会发生这种情况?我做错了什么,还是有其他解释?
谢谢
编辑:我发现相反的情况......我调用一个执行sqlite3
操作的方法:它从表中选择一些行,并且方法旨在返回一个数组,其中包含与我得到的行相对应的对象。我在方法的开头设置了一个断点,并在该return
行设置了另一个断点。我调用该方法一次,它在方法开始处的断点处停止一次,但在该return
行处停止两次。第一次,我要返回的数组有期望值,第二次,它变成了nil
,所以最后我nil
从方法中得到了一个返回值。断点return
第一次是“线程 1:断点 15.1”,第二次是“线程 1:断点 15.2”。我不明白这种行为。