将数据写入iphone中的文件时出错

时间:2012-12-13 17:48:03

标签: iphone objective-c xcode

在我的申请中,我放了一个空的

  1. MYFILE.TXT
  2. 当我有互联网连接时,我从互联网获取json数据并使用以下代码保存json字符串

    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"myFile" ofType:@"txt"];
    [myString writeToFile:filePath automatically:YES encoding:NSUTF... error:nil];
    
    //now while retrieving it when no internet connection
    NSString *filePath = [[NSBundle mainBundle] pathForResource:@"myFile" ofType:@"txt"];
    NSString *myString = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF..  error:nil];
    

    现在myString以@""返回...为什么我无法写入数据?

    最好的问候

2 个答案:

答案 0 :(得分:1)

无论您想做什么都不可能(或至少强烈建议不要)更新应用包中的文件。

如果您要下载文件并希望将它们存储在设备上,则应使用Documents目录。您可以使用以下命令获取此目录的路径:

- (NSString *)getDocumentsDirectory {  
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    return [paths objectAtIndex:0];  
} 

答案 1 :(得分:0)

首先检查天气内容是否已写入文件。您可以在xcode中查看该文件。 我建议你在运行应用程序时创建这个空文件。然后,您可以轻松地读取和写入该文件。

尝试使用以下代码:

 NSError* error = nil;
 NSString* jsonFileName = [NSString stringWithFormat:@"myfile"];
 NSString* jsonPath = [[NSBundle mainBundle] pathForResource:jsonFileName    
    ofType:@"txt"];
 NSString* jsonString = [NSString stringWithContentsOfFile:jsonPath 
          encoding:NSUTF8StringEncoding error:&error];

文件目录:

写入文件

    NSArray *paths = NSSearchPathForDirectoriesInDomains
        (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    //make a file name to write the data to using the documents directory:
    NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", 
                                                  documentsDirectory];
    //create content - four lines of text
    NSString *content = @"One\nTwo\nThree\nFour\nFive";
    //save content to the documents directory
    [content writeToFile:fileName 
                     atomically:NO 
                           encoding:NSStringEncodingConversionAllowLossy 
                                  error:nil];

显示内容:

    NSArray *paths = NSSearchPathForDirectoriesInDomains
                    (NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];

    //make a file name to write the data to using the documents directory:
    NSString *fileName = [NSString stringWithFormat:@"%@/textfile.txt", 
                                                  documentsDirectory];
    NSString *content = [[NSString alloc] initWithContentsOfFile:fileName
                                                  usedEncoding:nil
                                                         error:nil];