我正在尝试将UISwitch的状态写入文件,因此每次应用程序启动时都会记住它是先前打开还是关闭。
-(IBAction) switchValueChanged {
if (Hard1ON.on) {
isH1 = (@"YES");
//save above yes to file
经过一番搜索后,我发现这是用于保存到文件的代码:
- (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile encoding:(NSStringEncoding)enc error:(NSError **)error
然而,它引起了'使用未声明的标识符'writeToFile'错误。谁能告诉我什么是错的?
答案 0 :(得分:1)
以字符串形式保存到文件中(可能不是最佳解决方案):
- (IBAction)switchValueChanged:(id)sender
{
NSString *stateAsString;
if ([sender isOn]) {
stateAsString = @"YES";
} else {
stateAsString = @"NO";
}
[stateAsString
writeToFile:@"/path/to/file"
atomically:NO
encoding:NSUTF8StringEncoding
error:NULL
];
}
将状态写入NSUserDefaults可能是个更好的主意:
#define kSwitchStateKey @"SwitchState"
- (IBAction)switchValueChanged:(id)sender
{
[[NSUserDefaults standardUserDefaults]
setObject:@([sender isOn)
forKey:kSwitchStateKey
];
}