我的交换机的默认值有问题。我向UsersDefaults添加了一个FirstSwitchValue,并且此函数有效:
- (void)viewDidLoad
{
[super viewDidLoad];
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"FirstSwitchValue"]) {
NSLog(@"Exists");
}
else {
NSLog(@"Not Exists");
}
}
我的开关如下所示:
- (IBAction)FirstSwitch:(id)sender {
UISwitch *FirstSwitch = (UISwitch *)sender;
// saving data
if (FirstSwitch.on == YES) {
[self setParamWithName:@"tag" withValue:@"1"];
}
else {
[self setParamWithName:@"tag" withValue:@"0"];
}
}
如果我加
[FirstSwitch setOn:YES animated:YES];
在
viewDidLoad
方法中,我收到使用未声明的标识符FirstSwitch
的错误消息。在添加如下声明之后:@property (weak, nonatomic) IBOutlet UISwitch *FirstSwitch;
我的
FirstSwitch
停止工作了。谁能帮我? 最佳答案
您尚未手动合成属性。您有3种选择:
1:使用自动合成的名称:_FirstSwitch
。然后,您可以使用以下命令:
[_FirstSwitch setOn:YES animated:YES];
2:调用getter函数。您可以使用以下任一方法:
[self.FirstSwitch setOn:YES animated:YES];
要么
[[self FirstSwitch] setOn:YES animated:YES];
3:自己合成属性。首先创建一个实例变量:
//something.h
@interface somethingClass : UIViewController {
UISwitch *FirstSwitch;
}
@property (weak, nonatomic) IBOutlet UISwitch *FirstSwitch;
然后将其合成到您的.m文件中
//something.m
@synthesize FirstSwitch = _FirstSwitch;
之后,您的代码应该可以正常工作。
我建议您阅读有关properties的Apple文档。