2012-08-03 76 views
0

文件我寫一個文件保存到應用程序的文件目錄:從讀取文檔目錄的Objective-C

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

    // the path to write file 
    NSString *file = [documentsDirectory stringByAppendingPathComponent:@"data.json"]; 

    [responseString writeToFile:file atomically:YES]; 

但我怎麼能訪問該文件?

我的代碼如下所示:

NSString *filePath = [[NSFileManager defaultManager] pathForRessorce: @"data" ofType:@"JSON"]; 

    NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath]; 

    SBJsonParser *parser = [[SBJsonParser alloc] init]; 

    NSDictionary *data = (NSDictionary *) [parser objectWithString:fileContent error:nil]; 

不填充文件路徑...有人可以給我一個提示?

謝謝!

回答

6

您正在閱讀資源文件夾,而不是從文檔目錄中讀取。您需要按照您在寫作過程中使用的相同方式填寫filePath。那就是:

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

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"data.json"]; 
NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath]; 
+0

謝謝!工作正常:) – user1573643 2012-08-06 06:54:24

1

「initwithcontentsoffile已被棄用」 警告

所以不是:

NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath]; 

使用:

NSString *userInfoFileContent = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];