2013-03-20 4 views
3

자습서 다음에 나오는 RSS 리더 앱을 만들고 있습니다.이미지를 JSON에서 사용자 정의 클래스로 저장 iOS

지금까지 블로그 이름을 지정하고 작성자를 게시하고 이름을 기반으로 지정된 초기화 프로그램을 사용하는 blogPost라는 사용자 정의 클래스를 작성했습니다.

for 루프의 게시물 미리보기 이미지를 가져 와서 현재 제목 및 작성자 특성을 표시하고있는 셀에 표시하려고합니다.

이미지 URL을 성공적으로 가져 와서 JSON에서 파싱했지만 이미지를 UIImage에 저장할 수 없습니다. 이에

NSURL *thumbURL = [bpDictionary objectForKey:@"thumbnail"]; 

:

//Custom header for BlogPost 

@interface BlogPost : NSObject 
@property (nonatomic, strong) NSString *title; 
@property (nonatomic, strong) NSString *author; 
@property (nonatomic, strong) UIImage *image; 

// Designated Initializer 
- (id) initWithTitle:(NSString *)title; 

+ (id) blogPostWithTitle:(NSString *)tile; 
@end 

그리고 여기가 tableViewController

[super viewDidLoad]; 

NSURL *blogUrl = [NSURL URLWithString:@"http://www.wheninmanila.com/api/get_recent_summary/"]; 
NSData *jsonData = [NSData dataWithContentsOfURL:blogUrl]; 
NSError *error = nil; 

NSDictionary *dataDictionary = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error]; 

self.blogPosts = [NSMutableArray array]; 

NSArray *blogPostsArray = [dataDictionary objectForKey:@"posts"]; 

for (NSDictionary *bpDictionary in blogPostsArray) { 
    BlogPost *blogPost = [BlogPost blogPostWithTitle:[bpDictionary objectForKey:@"title"]]; 
    blogPost.author = [bpDictionary objectForKey:@"author"]; 

    NSURL *thumbURL = [bpDictionary objectForKey:@"thumbnail"]; 
    NSData *thumbData = [NSData dataWithContentsOfURL:thumbURL]; 

    blogPost.image = [[UIImage alloc] initWithData:thumbData]; 


    [self.blogPosts addObject:blogPost]; 
} 
+0

응용 충돌 내가 실행하려고하면. [__NSCFString isFileURL] 오류 : 인스턴스를 –

답변

4

변경이 라인의

NSURL *thumbURL = [NSURL urlWithString:[bpDictionary objectForKey:@"thumbnail"]]; 

당신의 사전에있는 값이 될 것입니다 NSStrings, 어떤 NSURL 님의 것과 다른 것은 아닙니다. 당신은 대신 NSStringNSStringNSURL를 사용하는

+0

빙고로 보냈습니다. 감사!! –

3

은 (당신이 예외가 왜 그게 전부) isFileURL을 선택에 응답하지 않습니다. 나는 당신이 NSString로 가야 귀하의 썸네일이 문자열 가정하고 다음과 같이 이상이 NSURL로 변환 :

NSString *thumbAsString = [bpDictionary objectForKey:@"thumbnail"]; 
NSURL *thumbURL = [NSURL URLWithString:thumbAsString]; 
관련 문제