2011-04-05 30 views
0

我添加的文本文件到mainbundle,我写上线来控制我的应用程序是这样读写应用IOS问题开始

NSString *fileName = [[NSBundle mainBundle] pathForResource:@"TestCases" ofType:@"txt"]; 

NSString *content = [[NSString alloc] initWithContentsOfFile:fileName 
               usedEncoding:nil 
                 error:nil]; 

if ([content length] == 0) { 


    [self MoveAndBuild ]; 

} 


content = @"Downloaded"; 
[content writeToFile:fileName 
      atomically:NO 
      encoding:NSStringEncodingConversionAllowLossy 
       error:nil]; 

开什么supossed是[自MoveAndBuild]安装应用程序后调用只是一个时间,但它被称为每次应用程序打开时,我失去的东西

问候

回答

2

文件中您的应用程序包是只读的。我会在你的情况下使用NSUserDefaults。例如。

NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults]; 

然后你就可以用

BOOL downloaded = [prefs boolForKey:@"downloaded"] 

读值和写

[prefs setBool:YES forKey:@"downloaded"]; 
+0

你可以给我更多的细节,在那里我将保存数据,将checcked – Ali 2011-04-05 13:16:24

+0

这就是你需要的一切,它应该没问题。更多信息在这里http://www.icodeblog.com/2008/10/03/iphone-programming-tutorial-savingretrieving-data-using-nsuserdefaults/ – Mason 2011-04-05 13:17:59

+0

什么是默认值在开始 – Ali 2011-04-05 13:21:21

1
[content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:nil]; 

永远不会成功,因为文件名指向应用程序包,这是不可写。所以你一直在测试同一个文件。

如果你会使用正确的错误处理,你会看到。

NSError *error; 
if (![content writeToFile:fileName atomically:NO encoding:NSStringEncodingConversionAllowLossy error:&error]) { 
    NSLog(@"Error writing - %@", error); 
} 

btw。 NSStringEncodingConversionAllowLossy不是一个有效的编码