我在数组中存储WAV文件名,包括扩展名。当我尝试加载它时,需要删除扩展名。如果我将扩展名的字符串子串起来,那么看似相同的字符串在硬编码时工作正常。
我也尝试使用 stringByDeletingPathExtension 方法,同样崩溃。
此代码导致崩溃
NSString *fileName = [[currentWord.audioFile componentsSeparatedByString:@"."] objectAtIndex: 0];
SFCLog(@"fileName: %@",fileName);
NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"wav"];
CFURLRef BaseURL = (__bridge CFURLRef)[NSURL fileURLWithPath:path];
-[ViewController loadWord] [line 143] fileName: owe_fr
2012-08-20 17:50:21.561 Hello[8053:16a03] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSURL initFileURLWithPath:]: nil string parameter'
但此代码执行
NSString *fileName = @"owe_fr";
SFCLog(@"fileName: %@",fileName);
NSString *path = [[NSBundle mainBundle] pathForResource:fileName ofType:@"wav"];
CFURLRef fluentBaseURL = (__bridge CFURLRef)[NSURL fileURLWithPath:path];
答案 0 :(得分:0)
好的,我找到了。存储的文件名版本中的前导空格 - 您可以在日志语句中看到它。我通过这样的记录找到它(标记到字符串的任一侧):
SFCLog(@"fileName :%@:",fileName);
记录为:
-[ViewController loadWord] [line 144] fileName : about_fr:
干杯, 肖恩