0

以下のコードを実行すると

NSString *chemin;
    chemin = [NSString stringWithFormat:@"chapitre0%d", [sender tag]];
    NSLog(@"chemin : %@",chemin);

    [detailChapitre loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:chemin ofType:@"html"]isDirectory:NO]]];

私が得た: 'NSInvalidArgumentException'、理由: ' * -[NSURL initFileURLWithPath:isDirectory:]: nil string parameter'

ただし、*chemin はログで正しい値に初期化されます。

確かに初歩的な質問です、Thx はあなたの助けを借りて

4

3 に答える 3

0

これは、ファイル「chapitre0[whatever].html」が期待した場所にないことを示しているように見えます。これは、間違った文字列が作成されていることが原因である可能性がありますが、ビルドプロセスがファイルを適切な場所に貼り付けていないことなどを意味している可能性もあります。NSLogに示されている文字列を調べてから、ビルドしたアプリのResourcesディレクトリを調べて、ファイルが実際にそこにあり、正しく名前が付けられていることを確認します。

于 2012-06-28T18:48:25.453 に答える
0

初期化cheminしてから解放してください。このような:

NSString *chemin;
chemin = [[NSString alloc] initWithFormat:@"chapitre0%d", [sender tag]];
NSLog(@"chemin : %@",chemin);

[detailChapitre loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:chemin ofType:@"html"]isDirectory:NO]]];
[chemin release];
于 2012-06-28T18:42:40.067 に答える
0

変数にcheminは正しい章があるかもしれませんが、パスが間違っている可能性があります。したがって、間違ったファイルパスを渡すと、クラッシュの原因となった intNSURLが返されます。null

最初に絶対パスを取得します-

NSString *path   = [[NSBundle mainBundle] pathForResource:@"chapter1" ofType:@"html"];
于 2012-06-28T18:42:59.017 に答える