我剛剛完成了使用AVFoundation的斯坦福大學iPhone課程。這是TA讓我們製作一個顯示視頻的應用程序,然後用面部識別在臉上戴上太陽鏡。所以我想連接幾個開關和滑塊來做不同的事情。第一個是改變色調過濾器值的滑塊。然後,我想要切換顯示太陽鏡或不太。但開關不會關閉太陽鏡。儘管交換機工作。我聲明在屬性與如何在Xcode 4.3中成功使用BOOL
@property (nonatomic) BOOL sunGlasses;
一個BOOL I合成,然後該方法下鉤在交換機最多以下動作
- (IBAction)toggleGlasses:(id)sender
{
if (_mySwitch.on)
{
NSLog(@"toggle is on");
self.sunGlasses = YES;
}else {
NSLog(@"toggle is off");
self.sunGlasses = NO;
}
}
然後,對於 - (無效)captureOutput,即其中色調得到改變和麪部識別是我添加到臉部識別部
if ((faceFound) && (self.sunGlasses = YES)){
[self.glasses setHidden:NO];
}else{
[self.glasses setHidden:YES];
}
它曾經是隻是如果(faceFound),然後藏在眼鏡或顯示它們。但是,如果將開關切換到關閉狀態,則不會使眼鏡消失。
除了通過分配平等檢查(您使用=代替==) ,你不應該檢查BOOL值是否。它不是一個真正的布爾類型,並且可以有很多不同的值(實際上是256)。你會做得更好,寫作該語句爲「if(faceFound && self.sunFlasses){」 – 2012-08-04 20:26:52
@Jody Hagins,感謝您的快速回復。你是否想在右括號之後加上一個括號?我應該檢查布爾對零和一個而不是真實和錯誤?再次感謝。 – Douglas 2012-08-04 20:51:37
我只是因爲那是我指示要替換的那一行而包含了花括號,並且它在原始行中。不,不要再檢查bools是否有明確的價值。任何非零值將爲「true」,且0將爲「false」。不幸的是,有很多代碼(包括蘋果示例代碼)明確檢查是和否。 NO不是那麼糟糕,因爲false只有0. – 2012-08-04 21:11:00