0

我正在使用以下代码根据用户单击的按钮加载一些声音。文件路径被testString完美加载,但是当 NSLogging 时URLToBeReturned,它以(null). 我不知道为什么它没有转移过来。

NSString *testString = [NSString stringWithString:[[NSBundle mainBundle] pathForResource:noteName ofType:@"m4a"]];
NSURL *URLToBeReturned = [NSURL URLWithString:testString];
return URLToBeReturned;
4

2 回答 2

5

代替

NSURL *URLToBeReturned = [NSURL URLWithString:testString];

利用

NSURL *URLToBeReturned = [NSURL fileURLWithPath:testString];
于 2012-06-20T12:22:37.643 回答
0

可能是因为它的 URL格式错误(来自NSURL 参考):

+ (id)URLWithString:(NSString *)URLString

返回值

一个用 URLString 初始化的 NSURL 对象。如果字符串格式错误,则返回 nil。

至于修复(来自同一参考):

网址字符串

用于初始化 NSURL 对象的字符串。必须是符合 RFC 2396 的 URL。此方法根据 RFC 1738 和 1808 解析 URLString。(要为文件系统路径创建 NSURL 对象,请改用 fileURLWithPath:isDirectory:。)

所以,你可以尝试使用fileURLWithPath:isDirectory:

于 2012-06-20T12:24:18.703 回答