2012-03-16 153 views
0

我收到以下代码的三条警告。该警告是:解释特定的编译器警告

1: “接收器类型 '为const char *' 不是 'ID' 或接口指针,考虑投射到 'ID'”
2:“实例方法 '-alloc' 未找到(返回类型默认为 '编号')”
3: “实例方法 '-hideBanner:' 未找到(返回类型默认为 '编号')”

这是我的代码:

- (void)applicationWillEnterForeground:(UIApplication *)application 
{ 

    MoPubManager *obj = [["MoPubManager.h" alloc] init]; 

    if(obj.adView) { 
     [self hideBanner:YES]; 
    } 
    [obj.adView refreshAd]; 

} 

这些是什么意思?

回答

2

您正在传递一个cstring而不是该类。试试这个:

MoPubManager *obj = [[MoPubManager alloc] init]; 
+0

非常感谢,修复它。然而,警告“Instance method'-hideBanner:'not found(return type defaults to'id')”仍然存在,突出显示'[self hideBanner:YES];' – John 2012-03-16 15:48:49

+1

这意味着你还没有实现hideBanner :(BOOL)方法(或者您在调用点之后声明方法,而不在头文件中声明) – Alladinian 2012-03-16 15:51:07

+0

非常感谢。我导入了找到该方法的头文件,还有什么我应该做的? – John 2012-03-16 15:55:19

1

尝试

MoPubManager *obj = [[MoPubManager alloc] init]; 

"MoPubManager.h"是头文件,而不是类名

1
MoPubManager *obj = [["MoPubManager.h" alloc] init]; 

当然,你的意思是:

MoPubManager *obj = [[MoPubManager alloc] init]; 
2

"MoPubManager.h"是名他的ader文件,而不是它所代表的类。您可能想要使用[[MoPubManager alloc] init]

+1

'MoPubManager.h'是一个头文件的名字,'MoPubManager.a'就是名字的一个库文件。 – 2012-03-16 15:44:48

+1

谢谢,纠正它。 – jonmorgan 2012-03-16 15:45:52

+0

@jonmorgan非常感谢,修正了它!然而,警告“实例方法'-hideBanner:'未找到(返回类型默认为'id')”仍然存在,突出显示'[self hideBanner:YES];' – John 2012-03-16 15:47:46