解释特定的编译器警告
问题描述:
我收到以下代码的三条警告。该警告是:解释特定的编译器警告
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];
}
这些是什么意思?
答
您正在传递一个cstring而不是该类。试试这个:
MoPubManager *obj = [[MoPubManager alloc] init];
答
尝试
MoPubManager *obj = [[MoPubManager alloc] init];
"MoPubManager.h"
是头文件,而不是类名
答
MoPubManager *obj = [["MoPubManager.h" alloc] init];
当然,你的意思是:
MoPubManager *obj = [[MoPubManager alloc] init];
答
"MoPubManager.h"
是名他的ader文件,而不是它所代表的类。您可能想要使用[[MoPubManager alloc] init]
。
非常感谢,修复它。然而,警告“Instance method'-hideBanner:'not found(return type defaults to'id')”仍然存在,突出显示'[self hideBanner:YES];' – John 2012-03-16 15:48:49
这意味着你还没有实现hideBanner :(BOOL)方法(或者您在调用点之后声明方法,而不在头文件中声明) – Alladinian 2012-03-16 15:51:07
非常感谢。我导入了找到该方法的头文件,还有什么我应该做的? – John 2012-03-16 15:55:19