什么 - [NSURL长度]:无法识别的选择器发送到实例0x1001c0360的意思

时间:2011-09-25 15:09:17

标签: cocoa nsstring nsurl

我一直试图让一些示例代码与Cocoa接口接口(它是用Carbon编写的);但是,当我试图替换

 err = ExtAudioFileCreateNew(&inParentDirectory, inFileName, kAudioFileM4AType, inASBD, NULL, &fOutputAudioFile);

err = ExtAudioFileCreateWithURL(CFURLCreateWithString(NULL,(CFStringRef)inFileName,NULL),kAudioFileM4AType,inASBD, NULL,kAudioFileFlags_EraseFile, &fOutputAudioFile);

我开始得到这些例外

  

2011-09-25 10:27:31.701测试员[1120:a0f] - [NSURL长度]:无法识别   选择器发送到实例0x1001c0360       2011-09-25 10:27:31.701 tester [1120:a0f] - [NSURL length]:无法识别的选择器发送到实例0x1001c0360。

我已经查看了其他几个问题和答案,在所有这些情况下,问题都与预期NSURL时传递的NSString有关;但是,我找不到我在做什么。我查看了文档,据我所知,我对Apple的API知之甚少。我没有做错任何事。

非常感谢任何帮助。

3 个答案:

答案 0 :(得分:10)

可能会帮到你,我有同样的问题

我试图从{<1}}开始:

UIImage

然后通过使用[UIImage imageWithData:[NSData dataWithContentsOfURL:[NSURL URLWithString:urlStr]]];

创建字符串来解决它
[NSString stringWithFormat:]

答案 1 :(得分:1)

错误信息非常清楚。 NSURL类没有-length实例方法。

您是否尝试使用Objective-C语法创建NSURL对象并将其强制转换为CFURLRef

答案 2 :(得分:0)

我从字符串中获取url时遇到了同样的问题 [NSString stringWithFormat:@"%@Activity/GetBudget/%@",self.baseURL,activityID]

我通过调用absoluteString

解决了这个问题 像这样

[[NSString stringWithFormat:@"%@Activity/GetBudget/%@",self.baseURL,activityID] absoluteString]