2011-04-05 49 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不是一個有效的編碼