2012-11-08 18 views
10

Tôi mới phát triển ứng dụng iPhone.NSInvalidArgumentException ', lý do:' - [__ NSCFString isFileURL]: bộ chọn không được nhận dạng được gửi tới cá thể 0x712e450 '

Khi tôi chạy một dự án mẫu, tôi đã được phân tích một nguồn cấp dữ xml và hiển thị nội dung cùng với hình ảnh trong một cái nhìn bảng, tôi nhận được lỗi này -

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

Nó chỉ xảy ra khi tôi cố gắng hiển thị hình ảnh trong UITableViewCell.

Code tôi sử dụng để nhận hình ảnh từ url là -

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

nơi bbc là một đối tượng class(NSObject subclass) sử dụng để lưu trữ các nội dung phân tích cú pháp.

+0

balakrishna ningalith enth veruppikkalado? – WonderKid

+0

onn poyi chathoode ..? –

Trả lời

29

Tôi nghĩ bạn đang sử dụng NSString làm NSURL. Hãy thử điều này:

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

Cảm ơn bạn :) – Supertecnoboff

+0

giải pháp hoàn hảo –

1

Dường như "url" trên thực tế là NSString, không phải là đối tượng NSURL. Chuyển đổi nó thành một đối tượng NSURL cho mình:

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

imageURL không phải là NSURL, nhưng là một chuỗi.

+1

yep. nó là, tôi đã không nhận thấy nó kể từ khi trình biên dịch didnt chỉ cho tôi bất kỳ cảnh báo rằng điểm .. Cảm ơn bất kỳ cách nào – nbs

+0

Tôi có nghĩa là nó trỏ đến một đối tượng chuỗi. –

+0

ya, tôi hiểu rồi, [attributeDict objectForKey: @ "url"] trả về một chuỗi mà tôi đã gán cho đối tượng NSURL. – nbs

Các vấn đề liên quan