2012-06-19 242 views
1

我有以下XML解析的endElement方法加載圖像從URL代碼:加載圖像到緩存

food.image=strVal; 
NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:strVal]]; 
UIImage *image=[[UIImage alloc]initWithData:data]; 
food.myImage=image; 

雖然我使用的應用程序的結束這個加載的圖像,我的應用程序必須等到所有圖像被加載。我應該在這裏使用緩存,但我很困惑如何在這個應用程序中使用緩存。有沒有其他方法?

+1

我真的可以建議你看一看[AFNetworking](https://github.com/AFNetworking/AFNetworking/ )他們在UIImageView上加載了一個很好的擴展來加載和緩存圖像。 – rckoenes

+0

試試這個: http://stackoverflow.com/questions/2149929/how-to-know-when-nsdatas-initwithcontentsofurl-has-finished-loading – sachin

回答

0

試試這個代碼,這將不會在你的主線程創建負載: -

dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0); 

dispatch_async(queue, ^{ 

    NSData *data=[[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:yourURL]]; 
    UIImage *image=[[UIImage alloc]initWithData:data]; 

    dispatch_sync(dispatch_get_main_queue(), ^{ 
     [yourImageView setImage:image]; 

    }); 
}); 
+0

我得到隊列的exec_bad_access –

+0

讓我看看你的代碼 – Leena