我刚刚完成了使用AVFoundation的斯坦福大学的iPhone课程。这是TA让我们制作应用程序的课程,该应用程序显示视频,然后用脸部识别将太阳镜放在脸上。所以我想连接几个开关和滑块来做不同的事情。第一个是滑块,它改变了色调过滤器的值。然后我想切换显示太阳镜。但是开关没有关掉太阳镜。虽然开关有效。我用
在属性中声明了一个BOOL@property (nonatomic) BOOL sunGlasses;
我合成了它,然后将开关连接到以下操作
- (IBAction)toggleGlasses:(id)sender
{
if (_mySwitch.on)
{
NSLog(@"toggle is on");
self.sunGlasses = YES;
}else {
NSLog(@"toggle is off");
self.sunGlasses = NO;
}
}
然后在 - (void)captureOutput的方法下,这是色调变化的地方,脸部识别是我添加到脸部识别部分
if ((faceFound) && (self.sunGlasses = YES)){
[self.glasses setHidden:NO];
}else{
[self.glasses setHidden:YES];
}
过去只是(faceFound)然后隐藏眼镜或展示它们。但是,如果将开关切换到关闭状态,这不会使眼镜消失。
答案 0 :(得分:4)
您使用过:
self.sunGlasses = YES
single =是一项任务。它设置该属性的值,并且当在更大的表达式中使用此语句时,它的值为YES。因此,“if”条件始终为真,并且始终显示显示太阳镜的分支。
使用double equals ==来测试相等性。
答案 1 :(得分:-1)
您可以使用
如果(self.sunGlasses){
}
验证