2012-03-16 152 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