可能是一个容易解决的问题,但我是新手,所以谢谢你 只是想了解如何使用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
my.m
@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;
}
}
...继续使用其他基本添加横幅广告代码 感谢您提前帮助
答案 0 :(得分:3)
从@implementation行的末尾删除分号(;),使其为
@implementation withadViewController
另外,请确保每个@end
或@interface
都匹配@implementation
以关闭该块。
@interface
... your code...
@end
和类似的
@implementation
... your code ...
@end
<强>更新强>
删除
{
ADBannerView *banner;
BOOL bannerIsVisible;
}
因为@property声明已经创建了实例变量来支持属性。
另外,请确保您没有在代码中本地创建另一个名为banner
的变量。
编译器抱怨是因为你有一个名为banner
的实例变量和一个名为-bannerViewDidLoadAd:
的{{1}}内的变量,所以在该方法中它不知道你引用了哪个变量当你引用banner
时。所以为了安全起见,改变
banner
到
- (void)bannerViewDidLoadAd:(ADBannerView *)banner
并在该方法的代码中引用- (void)bannerViewDidLoadAd:(ADBannerView *)bannerView
而不是bannerView
。对于使用名为banner
的局部变量的其他方法,您必须这样做。
答案 1 :(得分: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;
}
我希望它有效......祝你好运