在我的单元测试中,我测试失败,因为没有调用方法。被测试类的代码片段是:
if ([object respondsToSelector:@selector(updateFromDict:)]){
[object performSelector:@selector(updateFromDict:) withObject:objectsDict];
}
然而,当在调试器中我尝试进入该方法没有任何反应,并且对象updateFromDict:上的断点不会触发。它没有崩溃。 if子句为true,通过在执行选择器行上放置断点来验证。
我不知道它是如何与PerformSelector not working相关的,因为这应该等同于在同一个线程(Apple documentation)上直接调用[object updateFromDict:objectsDict]
更新 根据注释,我插入了NSLog语句,这些语句揭示了我的方法实现中的问题,导致它不能完成它应该做的事情。 由于某种原因,调试器无法正常工作。
答案 0 :(得分:0)
我建议您应该通过在updateFromDict:method的条件和内部方法定义中放置nslog语句来调试此问题。
同样可能发生这样的情况:if条件导致true响应选择器' object'存在并且直到时间执行选择器语句被称为'对象'被释放。
答案 1 :(得分:0)
请阅读Apple开发者视线中的此链接 How to use respondsToSelector
因此,您的对象可能无法继承您尝试调用它的方法,但可能无法满足条件。