2012-04-18 6 views
0

"Expected expression"エラーが発生しましたが、IBActionメソッドで理由がわかりません。エラーをコメントアウトしました。ストーリーボードでIBActionの式が期待されます

何が間違っているのか教えていただけますか?ありがとうございました。

#import "RTViewController.h" 
#import <AVFoundation/AVFoundation.h> 
#import <AudioToolbox/AudioToolbox.h> 

@interface RTViewController() { 
    AVAudioPlayer *backgroundAudioPlayer; 
    SystemSoundID burnRubberSoundID; 
    BOOL touchInCar; 
} 

@end 

@implementation RTViewController 
@synthesize car; 
@synthesize testDriveButton; 
@synthesize backgroundImage; 

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    self.title = @"Road Trip"; 

    NSURL* backgroundURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] 
               pathForResource:@"CarRunning" 
               ofType:@"aif"]]; 
    backgroundAudioPlayer = [[AVAudioPlayer alloc] 
          initWithContentsOfURL:backgroundURL error:nil]; 
    backgroundAudioPlayer.numberOfLoops = -1; 
    [backgroundAudioPlayer prepareToPlay]; 

    NSURL* burnRubberURL = [NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"BurnRubber" ofType:@"aif"]]; 
    AudioServicesCreateSystemSoundID((__bridge CFURLRef)burnRubberURL, &burnRubberSoundID); 
    [testDriveButton setBackgroundImage:[UIImage animatedImageNamed:@"Button" duration:1.0 ] forState:UIControlStateNormal]; 

} 

- (void)viewDidUnload 
{ 
    [self setCar:nil]; 
    [self setTestDriveButton:nil]; 
    [self setBackgroundImage:nil]; 
    [super viewDidUnload]; 
    // Release any retained subviews of the main view. 
} 



- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    //return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown); 
    return (interfaceOrientation == UIInterfaceOrientationPortrait); 
} 

- (IBAction)TestDrive:(id)sender { 
    AudioServicesPlaySystemSound(burnRubberSoundID); 
    [self performSelector:@selector(playCarSound) withObject:self afterDelay:.2]; 

    CGPoint center = CGPointMake(car.center.x, self.view.frame.origin.y + car.frame.size.height/2); 
    [UIView animateWithDuration:3 animations:^ { 
    car.center = center; 
    } 
        completion:^(BOOL finished) { 
        [self rotate]; 
        }]; 
} 

-(void)playCarSound { 
    [backgroundAudioPlayer play]; 
} 

- (void)rotate { 
    CGAffineTransform transform = CGAffineTransformMakeRotation(M_PI); 

    void (^animation)() = ^() { 
    car.transform = transform; 
    }; 

    void (^completion) (BOOL) =^(BOOL finished) { 
    [self returnCar]; 
    }; 

    [UIView animateWithDuration:3 animations:animation completion:completion]; 

} 

- (void)returnCar { 
    CGPoint center = CGPointMake(car.center.x, self.view.frame.origin.y + self.view.frame.size.height - car.frame.size.height/2); 

    void (^animation)() = ^() { 
    car.center = center; 
    }; 

    void (^completion)(BOOL) = ^(BOOL finished) { 
    [self continueRotation]; 
    }; 


    [UIView animateWithDuration:3 animations:animation completion:completion]; 

} 

- (void)continueRotation { 
    CGAffineTransform transform = CGAffineTransformMakeRotation(0); 

    void (^animation)() = ^() { 
    car.transform = transform; 
    }; 

    void (^completion)(BOOL) = ^(BOOL finished) { 
    [backgroundAudioPlayer stop]; 
    [backgroundAudioPlayer prepareToPlay]; 
    }; 


    [UIView animateWithDuration:3 animations:animation completion:completion]; 

} 

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { 
    UITouch *touch = [touches anyObject]; 
    if(CGRectContainsPoint(car.frame, [touch locationInView:self.view])) 
    touchInCar=YES; 
    else { 
    touchInCar=NO; 
    [super touchesBegan:touches withEvent:event]; 
    } 

    UISwipeGestureRecognizer *swipeGesture = [[UISwipeGestureRecognizer alloc]initWithTarget:self action:@selector(handleSwipeGesture:)]; 
    swipeGesture.direction = UISwipeGestureRecognizerDirectionLeft; 
    [self.view addGestureRecognizer:swipeGesture]; 

    - (IBAction)handleSwipeGesture:(id)sender { // Expected expression 

    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; 
    UIViewController *viewController = [storyboard instantiateViewControllerWithIdentifier:@"Content"]; 
    [[self navigationController]pushViewController:viewController animated:YES]; 
    } 
} 
@end 

答えて

0

問題は、あなたが自身の中括弧でメソッド

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event 

を閉じられることはありませんということです。 1つの視覚的な手がかりは、方法がその方法であることです。

- (IBAction)handleSwipeGesture:(id)sender 

(あなたのエラーがある場合)はインデントされます。

+0

ありがとうございます。できます! – pdenlinger

関連する問題