当前位置:  开发笔记 > IOS > 正文

如何禁用转发类编译器警告(未记录的类)

如何解决《如何禁用转发类编译器警告(未记录的类)》经验,为你挑选了1个好方法。

我目前正在编写一个使用UITabBarController的iPhone应用程序,该应用程序包含5个以上的Tab Bar项目.因此,会自动生成"更多"标签(例如,在YouTube应用中).我发现相应的视图控制器类是UIMoreListController,但我没有任何相应的.h文件.所以,我的代码看起来像这样:

@class UIMoreListController; // can't use #import since .h file is missing

@implementation SomeUINavigationControllerDelegate

- (void)navigationController:(UINavigationController *)navigationController
        willShowViewController:(UIViewController *)viewController
        animated:(BOOL)animated
{
     if ([viewController isKindOfClass:[UIMoreListController class]])
         ... // do something if "more" view is active

这就像一个魅力.但是,编译器一直在给我

警告:接收者'UIMoreListController'是一个转发类,对应的@interface可能不存在

是否有一种巧妙的方法来摆脱这种警告(只有这个特别的警告)?同样,我不能使用#import,因为没有.h文件可用.



1> Ashley Clark..:

如果您只是想检查UIMoreListController类,可以使用objc-api访问类变量.

if ([viewController isKindOfClass:NSClassFromString(@"UIMoreListController")])

那你就不需要#import@class声明了.

推荐阅读
牛尾巴2010
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有