web-dev-qa-db-ja.com

目的C:テキストファイルの読み取り

以前にこれをやったことがありますが、今はうまくいきません。私がやっている:

NSString* path = [[NSBundle mainBundle] pathForResource:@"test" 
                                                 ofType:@"txt"];
NSString* content = [NSString stringWithContentsOfFile:path
                                              encoding:NSUTF8StringEncoding
                                                 error:NULL];
NSLog(@"%@",path);

nSLogパスとコンテンツのたびに(null)を返します。私が間違っていることを誰でも見ることができますか?

63
Chris

開くことができないパスを渡すと、コンテンツはnil( '(null)'としてログに記録されます)になります。したがって、唯一の問題は、NSBundleの関連インスタンスが、アプリケーションバンドルのリソース部分内でtest.txtを見つけられないことです。

あなたがすべき:

  1. ファイルがXcodeプロジェクトにあることを確認してください。そして、もしそうなら、
  2. 選択したターゲットの下の「バンドルリソースのコピー」フェーズに含まれていることを確認します(通常のXcodeウィンドウレイアウトの左側のプロジェクトツリービューで)。
  3. 生成されたアプリケーションバンドルの内部を調べて(製品を見つけて右クリックし、[Finderで公開]を選択し、Finderからアプリを右クリックして[パッケージの内容を表示]を選択し、そこにあるファイルを探します)そこにあることを確認します。

コピーされたが、NSBundleの関連インスタンスがそれを見つけられない場合、非常に奇妙なことが進行中です。

49
Tommy