检查该对象响应后,performSelector不工作

时间:2015-02-10 12:50:27

标签: objective-c selector

在我的单元测试中,我测试失败,因为没有调用方法。被测试类的代码片段是:

if ([object respondsToSelector:@selector(updateFromDict:)]){
    [object performSelector:@selector(updateFromDict:) withObject:objectsDict];
}

然而,当在调试器中我尝试进入该方法没有任何反应,并且对象updateFromDict:上的断点不会触发。它没有崩溃。 if子句为true,通过在执行选择器行上放置断点来验证。

我不知道它是如何与PerformSelector not working相关的,因为这应该等同于在同一个线程(Apple documentation)上直接调用[object updateFromDict:objectsDict]

更新 根据注释,我插入了NSLog语句,这些语句揭示了我的方法实现中的问题,导致它不能完成它应该做的事情。 由于某种原因,调试器无法正常工作。

2 个答案:

答案 0 :(得分:0)

我建议您应该通过在updateFromDict:method的条件和内部方法定义中放置nslog语句来调试此问题。

同样可能发生这样的情况:if条件导致true响应选择器' object'存在并且直到时间执行选择器语句被称为'对象'被释放。

答案 1 :(得分:0)

请阅读Apple开发者视线中的此链接 How to use respondsToSelector

因此,您的对象可能无法继承您尝试调用它的方法,但可能无法满足条件。