Objective c 如何从plist文件中的不同键中检索不同的mp3文件?
我是iPhone的初学者。我采用了plist文件,我定义了下面的代码Objective c 如何从plist文件中的不同键中检索不同的mp3文件?,objective-c,Objective C,我是iPhone的初学者。我采用了plist文件,我定义了下面的代码 <key>Animalsound</key> <array> <string>africanwilddog.mp3</string> <string>anteater.mp3</string> <string>baboon.mp3</string>
<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>
-(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字符串参数’和selectpath:(null)
所以,给我一些对我的应用有帮助的建议和来源…在这一行
NSString *soundpath=[[NSBundle mainBundle]pathForResource:selectanimalaudio ofType:@"mp3"];
您搜索的是一个名为selectanimalaudio(f.e.bison.mp3)且扩展名为“mp3”的文件,因此您搜索的是“bison.mp3.mp3”,但我打赌该文件不存在,它必须返回nil,因此
[NSURL fileURLWithPath:soundpath]
将失败我只看到调用NSURL的AVAudioPlayer
行。字符串参数必须是nil
。