-3

私はこれに非常に慣れていないので、間違いを修正しやすいことをお許しください

.h

#import <UIKit/UIKit.h>
#import <iAd/iAd.h>
@interface withadViewController : UIViewController <ADBannerViewDelegate>{

ADBannerView *banner;
BOOL bannerIsVisible;

IBOutlet UITextField *textField1;
IBOutlet UITextField *textField2;
IBOutlet UILabel *label1;
}
@property (nonatomic, assign)BOOL bannerIsVisible;
@property (nonatomic, retain)IBOutlet ADBannerView *banner;
-(IBAction)calculate;
-(IBAction)clear;
@end

.m (すべての問題が原因不明の場合)

#import "withadViewController.h"
@interface withadViewController ()                  HERE IT SAYS INCOMPLETE IMPLEMENTATION
@end
@implementation withadViewController
@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); HERE SAYS LOCAL DECLARATION OF BANNER HIDES INSTANCE VARIABLE
    [UIView commitAnimations];
    self.bannerIsVisible = YES;
    }
}
-(void)bannerView:(ADBannerView *)aBanner didFailToReceiveAdWithError:(NSError *)error {
if (!self.bannerIsVisible) {
    [UIView beginAnimations:@"animatedAdBannerOff" context:NULL];
    banner.frame = CGRectOffset(banner.frame, 0.0, -320.0);
    [UIView commitAnimations];
    self.bannerIsVisible = NO;
}

 -(IBAction)calculate {                           HERE IT SAYS EXPECTED EXPRESSION

int x = ([textField1.text floatValue]);
int c = x*([textField2.text floatValue]);

label1.text = [[NSString alloc]initWithFormat:@"%2d", c];
}
-(IBAction)clear {
textField1.text = @"";
textField2.text = @"";
label1.text = @"";{
}
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}

- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}  
@end                                                             HERE IT SAYS MISSING @END

これは、.h ファイルと .m ファイルのすべてです。

4

2 に答える 2

1

メソッドを閉じることはありません。

-(void)bannerView:(ADBannerView *)aBanner didFailToReceiveAdWithError:(NSError *)error

これにより、コンパイラは、実装したメソッド (不完全な実装) を理解せず@end、式を期待しません。

どちらも名前が付けられているため、ローカル変数はインスタンス変数を隠していますbanner。次のコードが外部変数を非表示にする方法と同様です。

id var;
{
    id var;
}

パラメータの名前を のように変更することで、これを回避できますaBanner

于 2013-08-29T20:04:52.603 に答える
1

if ステートメントを閉じませんでした:

- (void)bannerView:(ADBannerView *)aBanner didFailToReceiveAdWithError:(NSError *)error {
    if (!self.bannerIsVisible) {
        [UIView beginAnimations:@"animatedAdBannerOff" context:NULL];
        banner.frame = CGRectOffset(banner.frame, 0.0, -320.0);
        [UIView commitAnimations];
        self.bannerIsVisible = NO;
    } // <-- HERE
}

他にも同様のエラーがあると思われます。一歩一歩、もう一度やり直してください。

コードをインデントして整理することは、このような問題を回避するのに大いに役立ちます。:)

于 2013-08-29T20:05:29.447 に答える