2012-03-05 11 views
1

私のプロジェクトに.jsファイルをドラッグアンドドロップしました。私はそれをロードしたいが、それは動作していない。それは私にヌルパスを与えます。iOSでjsファイルパスを取得するには?

これは、私はこれが動作していない

NSString *path = [[NSBundle mainBundle] pathForResource:@"SearchWebView" ofType:@"js"]; 

パスを取得しようとする最初のです。それでは、私は、私はドキュメント/

でそれをコピーする必要があるかもしれないと思うので、私はそれが私のドキュメントフォルダに新しいコピーファイルを作成していないコピーファイル

- (NSString *)getJSFilePath { 
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory , NSUserDomainMask, YES); 
    NSString *documentsDir = [paths objectAtIndex:0]; 
    return [documentsDir stringByAppendingPathComponent:@"SearchWebView.js"]; 
} 

- (void) copyJSFileIfNeeded{ 
    //Using NSFileManager we can perform many file system operations. 
    NSFileManager *fileManager = [NSFileManager defaultManager]; 
    NSError *error; 
    NSString *jsPath = [self getJSFilePath]; 
    BOOL success = [fileManager fileExistsAtPath:jsPath]; 

    if(!success) { 
     NSString *defaultDBPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"SearchWebView.js"]; 
     success = [fileManager copyItemAtPath:defaultDBPath toPath:jsPath error:&error]; 
     if (!success){ 
      //NSAssert1(0, @"Failed to create writable database file with message '%@'.", [error localizedDescription]); 
     } 
    } 
} 
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions{ 
    [self performSelector:@selector(copyJSFileIfNeeded)]; 

} 

を実行します。どうしてか分かりません? 私はplistまたはsqliteファイルをコピーするのと同じ方法を使用できますが、 ".jsファイル"は応答しません。 私はまた、ファイルが私のプロジェクトバンドルにあることを確かめます。

enter image description here

+0

削除「SearchWebView.js」を削除し、再度、プロジェクトにファイルをドラッグして、「保存先のフォルダにファイルをコピー」のオプションをチェックするために、JS目的のファイルを追加します。 。 –

+0

なぜ '!success'のファイルをコピーしようとしていますか? –

+0

@Vinceなぜ私はメインバンドルに入ることができないのか分かりません... –

答えて

13

あなたがJavaScriptファイルを追加すると、Xcodeは、ファイルは、ソースコードファイルであることを検出し、あなたがそれをコンパイルしたいと仮定して、自動的ソースをコンパイルビルドフェーズに追加します。それをコンパイルし、それが代わりにファイルをコピー作り、グループとファイル]リストにターゲットを広げ、ソースをコンパイルビルドフェーズからJavaScriptファイルを削除し、コピーバンドルリソースに追加しようとしているのXcodeを停止する

フェーズを構築します。 Xcodeの4のために

、ビルドフェーズをクリックして、メインプロジェクトをクリックすると、あなたはソースをコンパイルコピーバンドルリソース、以下の詳細な手順見つけることができます -

  1. プロジェクトナビゲータ(CMD +を1)
  2. プロジェクトを選択
  3. 選択対象
  4. 選択は、あなたがあなたの欲求のセクションを取得しますが、タブ「フェーズを構築します」。
  5. バンドルリソースをコピーして、コンパイルのソースからプロジェクト内
+0

Gr8 work srikar .. –

+0

@ AnilKothari、助けてうれしいです。私の答えがあなたを助けてくれたら、アップヴォートをお願いします:) –

+0

私はすでにそれをしています。私はstackOverflow.com –

関連する問題