0

アプリのドキュメント ディレクトリにファイルを書き込みます。

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];

ファイルパスが入力されていません...誰かヒントを教えてください。

ありがとう!

4

2 に答える 2

7

You are reading from resource folder, not from document directory. You need to populate filePath in the same way that you have used during writing. That is:

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

NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"data.json"];
NSString *fileContent = [[NSString alloc] initWithContentsOfFile:filePath];
于 2012-08-03T15:22:49.220 に答える
2

「initwithcontentsoffile は非推奨です」という警告

代わりに:

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

使用する:

NSString *userInfoFileContent = [[NSString alloc] initWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
于 2014-08-17T09:06:55.423 に答える