当我尝试将NSURL设置为NSString时,NSURL正在被取消

时间:2012-06-20 12:20:58

标签: objective-c ios xcode nsstring nsurl

我正在使用以下代码加载一些声音,具体取决于用户点击的按钮。文件路径完全加载到testString,但是当NSLogging URLToBeReturned时,它出现为(null)。我不确定为什么它没有转移。

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

2 个答案:

答案 0 :(得分:5)

而不是

NSURL *URLToBeReturned = [NSURL URLWithString:testString];

使用

NSURL *URLToBeReturned = [NSURL fileURLWithPath:testString];

答案 1 :(得分:0)

可能是因为它格式错误(来自NSURL reference)作为网址:

+ (id)URLWithString:(NSString *)URLString
     

返回值

     

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

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

  

URLString

     

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

因此,您可以尝试使用fileURLWithPath:isDirectory: