2011-08-07 72 views
0
NSUInteger index, count = [delegate.thumbArr count]; 
    for (index = 0; index < count; index++) 
    { 

    NSString *tPath = [[NSString alloc] init]; 
    tPath = [delegate.thumbArr objectAtIndex:index]; 
    NSURL *turl = [NSURL URLWithString:tPath]; 

    UIImage *_thumb =[self getImage:turl]; 

    // Adding images to the NSMutableArray TViews 
    [TViews addObject:_thumb]; 

    UIImage *_thumb2 =[TViews objectAtIndex:index]; 
    NSLog(@"Our Image is= %@", _thumb2); 

    [thumbView.imageView setImage:_thumb2]; 


    } 

- (UIImage*)getImage:(NSURL*)myurl 
{ 


    SDWebImageManager *manager = [SDWebImageManager sharedManager]; 
    UIImage *cachedImage = [manager imageWithURL:myurl]; 

    if(!cachedImage) 
    { 
     [manager downloadWithURL:myurl delegate:self]; 
    } 

    else 
    return cachedImage; 

} 

- (void)webImageManager:(SDWebImageManager *)imageManager didFinishWithImage:(UIImage *)image 
{ 
} 

但問題是,當我試圖登錄圖像不displating ...的UIImage不顯示

NSLog(@"Our Image is= %@", _thumb2);是給我NULL ...幫我解決這個問題...

回答

1

首先,你有一個邏輯錯誤在你getImage方法:

- (UIImage*)getImage:(NSURL*)myurl { 

    SDWebImageManager *manager = [SDWebImageManager sharedManager]; 
    UIImage *cachedImage = [manager imageWithURL:myurl]; 

    if(!cachedImage) { 
     [manager downloadWithURL:myurl delegate:self]; 
    } 
    else { 
     return cachedImage; 
    } 

    //execution will get here if there is no cached image; the "returned" value will be nil 
} 

如果沒有緩存的圖片可用,那麼你的getImage通話將返回nil,這當然不會正確顯示。

現在我不知道SDWebImageManager打算如何使用的確切細節,但從您的代碼,它看起來像它幾乎肯定會執行異步下載所請求的圖像,如果本地副本不是立即可用在緩存中。這意味着您不能撥打getImage,並希望立即找回您可以顯示的圖像。

你有兩種選擇固定的:

  1. 實現該webImageManager:didFinishWithImage:方法,你已經到了那裏來處理圖像,圖像管理器下載異步,並且調整你的代碼工作它。

  2. 擺脫SDWebImageManager的,並使用一個同步請求下載的圖片,如果它不是在緩存中。

+0

意味着從我的縮略圖中獲取網絡圖像我必須做的...我必須從網上顯示超過15個圖像。 u能告訴我什麼想法..... – neoJacob

+0

我想從網上我所有的圖片,如果它不是在我的緩存..否則,在下載最高速度和存儲到某些陣列。這是我使用的SDWebImageManger的原因..可處Utell我任何ither想法 – neoJacob

+0

沒有referece導遊提供SDWebImageManager ... u能告訴我,我該如何使用,在我的情況..... – neoJacob