-1

私はiPhoneの初心者です。私は以下のコードを定義しているという点でplistファイルを取りました。

<key>Animalsound</key>
    <array>
        <string>africanwilddog.mp3</string>
        <string>anteater.mp3</string>
        <string>baboon.mp3</string>
        <string>bat.mp3</string>
        <string>bear.mp3</string>
        <string>bison.mp3</string>
        <string>blackpanther.mp3</string>
    </array>
 <key>Birdsound</key>
    <array>
        <string>albatross.mp3</string>
        <string>antilleangrackle.mp3</string>
        <string>arcticloon.mp3</string>
        <string>beeeater.mp3</string>
        <string>beltedkingfisher.mp3</string>
        <string>bittern.mp3</string>
</array>

したがって、その目的のためにplistファイルからどのように異なるキーを取得するかを以下のコードで使用しました。

-(IBAction)onclicksound:(id)sender
{
        path=[[NSBundle mainBundle]pathForResource:@"Animalfile" ofType:@"plist"];
        dict=[NSDictionary dictionaryWithContentsOfFile:path];
        animalaudio=[pathdata valueForKey:@"Animalsound"];
        NSLog(@"animalaudio:%@",animalaudio);
        selectanimalaudio=[animalaudio objectAtIndex:currentsound];
        NSString *soundpath=[[NSBundle mainBundle]pathForResource:selectanimalaudio ofType:@"mp3"];
        NSLog(@"selectaudio:%@",selectanimalaudio);
        NSLog(@"selectpath:%@",soundpath);
          AVAudioPlayer *audioplayer=[[AVAudioPlayer alloc]initWithContentsOfURL:[NSURL fileURLWithPath:soundpath]  error:NULL];
        self.audiosound=audioplayer;
        [audioplayer release];
         [audiosound play];
        NSLog(@"audioplayer:%@",audioplayer);
}

しかし、私がこのコードを実行すると。それはの実行時エラーを与えます

キャッチされなかった例外'NSInvalidArgumentException'、理由:' * -[NSURL initFileURLWithPath:]:nil string parameter'およびselectpath:(null)が原因でアプリを終了しています

だから、私のアプリに役立つ提案とソースを教えてください...

4

1 に答える 1

0

この行で

NSString *soundpath=[[NSBundle mainBundle]pathForResource:selectanimalaudio ofType:@"mp3"];

検索するのは、名前が selectanimalaudio (fe bison.mp3) で拡張子が "mp3" のファイルので、検索するのは " bison.mp3.mp3 " ですが、このファイルは存在しないに違いなく、nilを返す必要があります。 、だから[NSURL fileURLWithPath:soundpath]失敗する

于 2012-07-17T15:37:52.110 に答える