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
ありがとうございます。できます! – pdenlinger