检查其存在后调用方法给出错误而不是警告

时间:2015-09-23 06:35:10

标签: ios objective-c iphone xcode

我在检查它的存在后调用一个方法,但它一直在给出错误。我做了很多次这样的事情,但现在却给出了错误。任何帮助

 if ([[self.navDashBoard.viewControllers lastObject] respondsToSelector:@selector(updateScreenForExtraOption)])
    {
        [[self.navDashBoard.viewControllers lastObject] updateScreenForExtraOption];
    }

请看我的更新图像同样的东西在同一个类中完美地工作,而其他方法则不然。我没有在其中创建任何具有refreshPage方法的Category或ViewController子类。

enter image description here

2 个答案:

答案 0 :(得分:2)

通常你看到的是:

 if ([[self.navDashBoard.viewControllers lastObject] respondsToSelector:@selector(updateScreenForExtraOption)])
 {
     [[self.navDashBoard.viewControllers lastObject] performSelector:@selector(updateScreenForExtraOption)];
 }

这会在直接调用方法时发出警告但不会出错。或者按照Paulw11建议的方式进行,并将其转换为正确的类型。

答案 1 :(得分:0)

我刚刚通过导入一个将此方法声明为public的类(UIViewController子类)来修复此问题。即使我没有使用那门课程。