これはおそらく解決するのが非常に簡単な問題ですが、私は成功していません。ファイル「questions_famquiz_easy_110326.txt」をリソース フォルダーにコピーしました。アクセス (読み取り) して NSLog を実行し、読み取れることを確認します。
以下のコードは、Web で見つけた例に基づいて行ったテストの 1 つです。
Resources フォルダー内の txt ファイルにアクセスしようとしていますが、アクセスできません。解決策を探し、多くのテストを行いましたが、成功しませんでした。
次のコードでテストしています。
NSLog(@"\n \n >>>>>>viewDidLoad<<<<<<<<<");
NSError *error;
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *docsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [docsDirectory stringByAppendingPathComponent:@"questions_famquiz_easy_110326.txt"];
if(![fileManager fileExistsAtPath:filePath])
{
NSData *data = [NSData dataWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/questions_famquiz_easy_110326.txt"]];
[data writeToFile:filePath atomically:YES];
}
NSString *myString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
NSLog(@"myString: %@", myString);
NSLog(@"\n \n>>>>>>DONE WITH viewDidLoad<<<<<<<<<");
exit(0); //====EXIT JUST FOR THE TEST====<<<
上記のコードは、開始された最初の viewController にあります。
私が得る出力は次のとおりです。
>>>>>>viewDidLoad<<<<<<<<<
2011-04-24 21:53:47.825 FamQuiz_R0_1[542:307] myString: (null)
2011-04-24 21:53:51.044 FamQuiz_R0_1[542:307]
>>>>>>DONE WITH viewDidLoad<<<<<<<<<
誰かがこれを解決するのを手伝ってくれますか?
アップデート:
ファイルパスは次のとおりです。
2011-04-24 22:38:08.562 FamQuiz_R0_1[637:307] filePath: /var/mobile/Applications/7F5FDB03-0D22-46BC-91BC-4D268EB4BBEB/FamQuiz_R0_1.app/questions_famquiz_easy_110326.txt
ファイルを配置した場所は次のとおりです。
問題が解決しました:
NSString *myString = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
上記を使用すると機能しませんでしたが、以下を使用すると機能し、テキストが印刷されました。
NSString *myString = [[NSString alloc] initWithContentsOfFile:filePath];