2015-04-30 30 views
5

我試圖iAd的融入是Cocos2d-X項目:如何在描述解決 「成員訪問到類型不完全」 錯誤

#import <Foundation/Foundation.h> 
#import <iAd/iAd.h> 
@class RootViewController; 
@interface AdBanner : NSObject<ADBannerViewDelegate> 
{ 
    UIWindow* window; 
    RootViewController* rootViewController; 
    ADBannerView* adBannerView; 
    bool adBannerViewIsVisible; 
} 

AdBanner.mm

http://becomingindiedev.blogspot.com.es/2015/02/integrating-iad-in-cocos2d-x-v3x.html

AdBanner.h

@implementation AdBanner 

-(id)init 
{ 
    if(self=[super init]) 
    { 
    adBannerViewIsVisible = YES; 
    rootViewController = 
     (RootViewController*) [[[UIApplication sharedApplication] keyWindow] rootViewController]; 
    window = [[UIApplication sharedApplication] keyWindow]; 
    [self createAdBannerView]; 
    } 
    return self; 
} 

-(void)layoutAnimated:(BOOL)animated 
{ 
    CGRect bannerFrame = adBannerView.frame; 
    //Has the banner an advestiment? 
    if (adBannerView.bannerLoaded && adBannerViewIsVisible) 
    { 
     NSLog(@"Banner has advertisement"); 
     bannerFrame.origin.y = window.bounds.size.height - bannerFrame.size.height; 
    } else 
    { 
     NSLog(@"Banner has NO advertisement"); 
     //if no advertisement loaded, move it offscreen 
     bannerFrame.origin.y = window.bounds.size.height; 
    } 
    [UIView animateWithDuration:animated ? 0.25 : 0.0 animations:^{ 
     [rootViewController.view layoutIfNeeded]; //Member access into incomplete type "RootViewController" 
     adBannerView.frame = bannerFrame; 
    }]; 
} 
@end 

在AdBanner.mm底部的行給出了錯誤:

[rootViewController.view layoutIfNeeded]; //Member access into incomplete type "RootViewController" 

我該如何解決?

+0

'rootViewController'看起來像一個指針,嘗試' - >'? – user3528438

+0

這是objective-C++代碼。 –

+0

它在vsoftco編輯之前被標記爲C++ ...... – user3528438

回答

9

您已經使用@Class指令將RootViewController聲明爲.h文件中的前向類聲明,但未在您的ADBanner.mm文件中導入RootViewController.h。

這意味着編譯器知道有一些類RootViewController,但不知道更多關於它的信息 - 它的超類,方法或屬性。因此它不能確認它實際上有一個方法layoutIfNeeded

#import "RootViewController.h"添加到ADBanner.mm的頂部將爲編譯器提供所需的信息並解決錯誤。

相關問題