NSInvalidArgumentException',原因:' - [__ NSCFString isFileURL]:无法识别的选择器发送到实例0x712e450'

时间:2012-11-08 10:51:57

标签: objective-c ios xcode ios5 ios4

我是iPhone App开发的新手。

当我运行一个示例项目时,我做了解析xml订阅源并在表格视图中显示内容和图像,我收到此错误 -

"NSInvalidArgumentException', reason: '-[__NSCFString isFileURL]: unrecognized selector sent to instance 0x712e450'"

仅当我尝试在UITableViewCell中显示图像时才会发生。

我用来从url获取图片的代码是 -

if([elementName isEqualToString:IMAGE])
{
    NSURL *imageUrl = [attributeDict objectForKey:@"url"];
    NSData *imageData = [NSData dataWithContentsOfURL:imageUrl];
    bbc.image = [UIImage imageWithData:imageData];        
}

其中bbc是用于存储已解析内容的class(NSObject subclass)对象。

3 个答案:

答案 0 :(得分:30)

我认为您使用NSString作为NSURL。试试这个:

    NSURL *imageUrl =[NSURL URLWithString:[attributeDict objectForKey:@"url"]];

答案 1 :(得分:1)

看起来“url”实际上是NSString,而不是NSURL对象。自己将其转换为NSURL对象:

if ([elementName isEqualToString:IMAGE])
{
    NSString *urlStr = [attributeDict objectForKey:@"url"];
    NSURL *imageUrl = [NSURL URLWithString:urlStr];
    NSData *imageData = [NSData dataWithContentsOfURL:imageUrl];
    bbc.image = [UIImage imageWithData:imageData];        
}

答案 2 :(得分:1)

imageURL不是NSURL,而是字符串。