0

在我的应用程序中,我放置了一个空的

  1. 我的文件.txt

当我有互联网连接时,我从互联网获取 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 返回@""... 为什么我无法写入数据?

最好的祝福

4

2 回答 2

1

无论您想做什么(或至少强烈不鼓励)更新应用程序包中的文件都是不可能的。

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

- (NSString *)getDocumentsDirectory {  
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  
    return [paths objectAtIndex:0];  
} 
于 2012-12-13T17:57:19.307 回答
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];
于 2012-12-13T20:10:40.057 回答