在playpauseAction
方法执行中,它将播放音频文件以及加载多个viewcontrollers
-(void)playpauseAction:(id)sender
{
if
([audioPlayer isPlaying]){
[sender setImage:[UIImage imageNamed:@"play.png"] forState:UIControlStateSelected];
[audioPlayer pause];
} else {
[sender setImage:[UIImage imageNamed:@"pause.png"] forState:UIControlStateNormal];
[audioPlayer play];
self.timer = [NSTimer scheduledTimerWithTimeInterval:11 target:self selector:@selector(displayviewsAction:) userInfo:nil repeats:NO];
}
}
加载这些view controllers
时,只想在每个viewcontroller
签入,audioplayer
暂停,invalidate timer
如果没有,则继续加载viewcontroller
{ {1}}
NSTimer
我的问题是当我在- (void)displayviewsAction:(id)sender
{
FirstViewController *viewController = [[FirstViewController alloc] init];
viewController.view.frame = CGRectMake(0, 0, 320, 480);
[self.view addSubview:viewController.view];
[self.view addSubview:toolbar];
if
([audioPlayer pause]){
[timer invalidate];
} else {
self.timer = [NSTimer scheduledTimerWithTimeInterval:23 target:self selector:@selector(secondViewController) userInfo:nil repeats:NO];
}
[viewController release];
}
方法中添加if语句时,它会向我发出displayviewAction
的红色警告消息。
但statement requires expression of scalar type (void invalid)
中的if statement
可以正常使用。
为什么playpauseAction
的{{1}}会发出红色警告信息。
答案 0 :(得分:1)
AVAudioPlayer的暂停定义为:
-(void)pause
所以写道:
if([audioPlayer pause]) {...}
对应于写:
if(void) {...}
和void不是标量类型,正是错误消息告诉您的内容。
可能你打算检查音频播放器是否暂停,即它没有播放:
if([audioPlayer isPlaying]==NO) {...}