0

可能是一个容易解决的问题,但我是新手,所以谢谢你只是想了解如何使用 iAd 并将其放入

我的.h

#import <UIKit/UIKit.h>
#import <iAd/iAd.h>
@interface withadViewController : UIViewController <ADBannerViewDelegate>
{
ADBannerView *banner;
BOOL bannerIsVisible;
}
@property (nonatomic, assign)BOOL bannerIsVisible;
@property (nonatomic, retain)IBOutlet ADBannerView *banner;
@end

我的

@implementation withadViewController;                        **incomplete implementation**
@synthesize banner;
@synthesize bannerIsVisible;

-(void) bannerViewDidLoadAd:(ADBannerView *)banner 
{
    if (!self.bannerIsVisible) 
    {
        [UIView beginAnimations:@"animatedAdBannerOn" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0.0, 50.0);
        [UIView commitAnimations];
        self.bannerIsVisible = YES;
    }
}

...继续基本添加横幅广告代码的其余部分感谢您提前提供帮助

4

2 回答 2

3

从 @implementation 行的末尾删除分号 (;)

@implementation withadViewController

还要确保你有一个匹配@end的每个@interface@implementation关闭块。

@interface

... your code...

@end

同样地

@implementation

... your code ...

@end

更新:

消除

{
ADBannerView *banner;
BOOL bannerIsVisible;
}

因为@property 声明已经创建了实例变量来支持属性。此外,请确保您没有banner在代码中创建另一个本地命名的变量。

编译器抱怨是因为你有一个名为的实例变量和一个名为的banner变量,所以在那个方法里面它不知道你在引用时引用的是哪个变量。所以为了安全起见,改变-bannerViewDidLoadAd:bannerbanner

- (void)bannerViewDidLoadAd:(ADBannerView *)banner

- (void)bannerViewDidLoadAd:(ADBannerView *)bannerView

bannerView在该方法的代码中引用而不是banner. 您必须对其他使用名为的局部变量的方法执行此操作banner

于 2013-08-29T19:18:30.327 回答
0

问题是您声明 ADBannerView 的方式

@interface withadViewController : UIViewController <ADBannerViewDelegate>
{
//problem is here .. you might need to add IBOutlet, if you have used interface builder
ADBannerView *banner;
BOOL bannerIsVisible;
}

我认为它应该像以下

@interface withadViewController : UIViewController <ADBannerViewDelegate>
{
//you forget to add IBOutlet in front of ADBannerView
IBOutlet ADBannerView *banner;
BOOL bannerIsVisible;
}

我希望它有效......祝你好运

于 2013-08-29T19:42:50.327 回答