2011-10-30 19 views
1

私のプロジェクトでは、GAME.jsというプレーンテキストファイルがあり、ファイルの内容を取得しようとしています。それが動作するはずのようXcodeでファイルの内容を取得する

[NSString stringWithContentsOfFile:@"GAME.js" encoding:NSUTF8StringEncoding error:nil]; 

は聞こえますが、それは単に空の文字列を返します。

これを解決してください。

答えて

2

あなたはNSErrorに渡すと、それは問題がある正確に何を教えてくれます:

NSError *error = nil; 
NSString *myString = [NSString stringWithContentsOfFile:@"GAME.js" encoding:NSUTF8StringEncoding error:&error]; 

if (error) { 
    NSLog(@"%@", [error localizedDescription]); 
} else { 
    NSLog(@"%@", myString); 
} 

NSError Documentation


をまた、それはあなたの文書にすることができたディレクトリであるかどうかを確認しますNSSearchPathForDirectoriesInDomainsでアクセス:

NSError *error = nil; 

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *fullPath = [[paths objectAtIndex:0] stringByAppendingPathComponent:@"GAME.js"]; 

NSString *myString = [NSString stringWithContentsOfFile:fullPath encoding:NSUTF8StringEncoding error:&error]; 

if (error) { 
    NSLog(@"%@ - %@", [error localizedDescription], [error localizedFailureReason]); 
} else { 
    NSLog(@"%@", myString); 
} 
+0

o_O操作を完了できませんでした。 (Cocoa error 260.) - (null) – milo

+0

申し訳ありませんが、あなたの実際のエラーではなく、私があなたに与えたコードのエラーであると誤解しました...私はエラーコード(260)を見なければならないでしょうが、 @ChrisLedet答えは、おそらく動作します。彼の答えがうまくいかない場合は、最後の回答の編集で追加したものを試してください。 – chown

+0

Cocoa(Touch)では、[エラー出力パラメータを調べる前にメソッドの戻り値を確認する]必要があります(http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/ErrorHandlingCocoa/CreateCustomizeNSError/CreateCustomizeNSError .html)。 –

8

GAME.jsをXcodeプロジェクトのResourcesフォルダに置き、次のコードを使用してファイルの内容を取得します。

NSError *error = nil; 
NSString* path = [[NSBundle mainBundle] pathForResource:@"GAME" ofType:@"js"]; 
NSString* gameFileContents = [NSString stringWithContentsOfFile:path encoding:NSUTF8StringEncoding error:&error]; 
関連する問題