2012-07-30 59 views
0

我有一個iPhone應用程序中,我感到圖標顯示的圖像從服務器來爲每種類型的類別爲單元的images.i希望它從我的形象cache.i加載希望它是存儲用於該圖像鍵入圖像緩存,並在下一次該類型即將到來時,它可以直接從緩存中加載。因此,如果該類型的圖像存在,它需要從本地加載。其他明智的需要存儲然後顯示。我的問題是我如何在圖像緩存中存儲與該類型相對應的圖像,以及下一次如何檢查該圖像。是否有人可以幫助我?如何將來自服務器的類型字符串存儲到緩存?

回答

0

你會嘗試這個辦法:(對應的圖像你需要保存圖像名稱 - 例如 - nsuser默認):

- (void) makeCache: (NSString *)name 
{ 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *imagePath = [paths objectAtIndex: 0]; 

    // create screen dump of the view of this view controller 
    NSString *fileName = [NSString stringWithFormat:@"%@", name]; 
    NSString *filePath = [NSString stringWithFormat: @"%@/%@.jpg", imagePath, fileName]; 

    NSData *imageBytes = UIImageJPEGRepresentation(myImageIcon.image, .9); // myImageIcon.image - uiimageview 



    BOOL saved = [imageBytes writeToFile: filePath atomically: YES]; 
    if (!saved) 
     { 
    NSLog(@"error! can't save image at path: %@", filePath); 
    } 

}

然後執行:

- (NSString *) searchFile: (NSString *) fileName 
    { 
     NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *imagePath = [paths objectAtIndex: 0]; 

    NSString *filePath = [NSString stringWithFormat: @"%@/%@", imagePath, fileName]; 

    if ([[NSFileManager defaultManager] fileExistsAtPath: filePath]) 
     { 
     return filePath; 
    } 
    else 
     { 
    return nil; 
    } 

}

你也可以這樣做的PNG圖像。祝你好運!

+0

我想一個字符串和圖像添加到我的緩存,即字符串值是一樣,如果它是一個咖啡店的cofeeshop,或餐飲業這樣的類型。並且還會有相應的圖像。然後,我需要如果類型是cofee,然後從緩存中添加圖像(如果存在),請將其存儲並顯示。 – hacker 2012-07-30 09:23:48

+0

添加到nsuser默認值爲字典:鍵 - 圖像類型(咖啡店)和值 - filePath(from searchFile)這是代碼的近似和平,您可以將其重寫爲您的需要 – frankWhite 2012-07-30 09:45:37

1

有幾種技術來使用緩存。有些是我以前使用過的。

1- EGOCache

2- SDWebImage

相關問題