2013-02-24 78 views
0

我正在尝试将UISwitch的状态写入文件,因此每次启动应用程序时都会记得它以前是否打开或关闭。将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‘错误“未声明的标识符的使用’。谁能告诉我什么是错的?

+1

灿你将代码发布到你正在调用'writeToFile'的地方? – lxt 2013-02-24 11:14:50

+0

您可能想要考虑'NSUserDefaults'这个:http://stackoverflow.com/a/4231746/653513无论如何,您发布的代码与错误无关:请参阅lxt的评论。 – 2013-02-24 11:18:25

回答

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 
    ]; 
}    
+0

刚刚熟悉NSUserDefaults,看起来你是对的,非常感谢你的帮助。 – 2013-02-24 11:52:25