基本上,我試圖讓nslog在控制檯中開啓和關閉。但我似乎無法讓它正常工作。 NSUserDefaults
效果很好,但NSLog
沒有出現。爲什麼我的布爾函數無法正常工作Xcode
的ViewController 1的.h
@property (nonatomic, weak) IBOutlet UISwitch *cameraSwitch;
的ViewController 1.M
- (void)cameraEnabled
{
if (cameraSwitch.isOn)
{
}
else
{
}
}
視圖控制器2.H
viewcontroller1 *myVC;
@property (nonatomic, retain) IBOutlet viewcontroller *myVC;
視圖控制器2.M
- (void)viewDidLoad
{
UISwitch *onOffSwitch = [[UISwitch alloc] init];
/* If it is the first time were are running this code, we will get nil from
NSUserDefaults, and we'll turn the switch off.
After the user has set the switch, it will store the value in NSUserDefaults
and we can remember what to set it to the next time viewDidLoad is called.
*/
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"SwitchKey"]) {
[onOffSwitch setOn:YES animated:NO];
} else {
[onOffSwitch setOn:NO animated:NO];
}
[self.myVC.cameraSwitch addTarget:self action:@selector(openswitch) forControlEvents:UIControlEventValueChanged];
}
- (void)openswitch
{
if (self.myVC.cameraSwitch.isOn)
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"SwitchKey"];
NSLog(@"on");
}
else
{
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"SwitchKey"];
NSLog(@"off");
}
}
你有沒有把'self.myVC.cameraSwitch'設置爲任何東西?例如。把'self.myVC.cameraSwitch = onOffSwitch;'放在viewDidload中,甚至不要創建新的變量'onOffSwitch',只是實例化'cameraSwitch'。 – matsr 2013-03-05 00:37:40
不屬於你的問題,但如果你使用點語法訪問屬性,你應該使用屬性名稱,而不是getter名稱:'if(cameraSwitch.on)'而不是'if(cameraSwitch.isOn)'。 – Sebastian 2013-03-05 01:01:54