2014-02-27 121 views
0

我正在開發免費應用程序,並有2個圖像(一個透明覆蓋層)作爲背景。我將每月從我的網絡中更改這兩個圖像。圖像更新過程,但應用程序如何知道圖像是否在網絡上發生了變化?當啓動應用程序,我要實現以下目標:啓動應用程序 從網絡更新iOS應用程序

  • 下載圖片之前

    1. 支票可用於圖片的更新,本地存儲,作爲背景使用
    2. 如果沒有新的可用的圖像,使用默認
    3. 啓動應用程序

    有人可以指向比較/ web請求過程的正確方向嗎?

    這是我到目前爲止有:

    viewDidLoad方法

    self.imageData = [[NSMutableData alloc]init]; 
    [NSURLConnection connectionWithRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.blahblah.com/newImage.jpg"]]delegate:self]; 
    

    休息代碼:

    - (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response 
    { 
        self.length = [response expectedContentLength]; 
    } 
    - (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data 
    { 
        [self.imageData appendData:data]; 
        float progress = (float)[imageData length]/(float)self.length; 
        [self.progressView setProgress:progress animated:YES]; 
    } 
    - (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 
    { 
        NSLog(@"didFailWithError"); 
    } 
    - (void)connectionDidFinishLoading:(NSURLConnection *)connection 
    { 
        UIImage *img = [UIImage imageWithData:self.imageData]; 
        self.backgroundImageView.image = img; 
        [self saveLocally:self.imageData]; 
    } 
    // save 
    - (void)saveLocally:(NSData *)imgData 
    { 
        NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
        NSString *documentsDirectory = [paths objectAtIndex:0]; 
        NSDate *aDate = [NSDate date]; 
        NSTimeInterval interval = [aDate timeIntervalSince1970]; 
        NSString *localFilePath = [documentsDirectory stringByAppendingPathComponent:[NSString stringWithFormat:@"%d.jpeg",(int)interval]]; 
        [imgData writeToFile:localFilePath atomically:YES]; 
    } 
    

    謝謝您的時間!

  • 回答

    1

    如果我正確理解您的問題,您可以在這裏嘗試幾種方法。

    一種方法是在網上發佈一些文本文件,其中包含圖像文件的文件名和/或大小,如果文件大小與您本地保存的圖像及其大小不匹配,然後可以在設備上更新(即下載新的圖像)。

    這樣,您只需下載一個非常小的文件(包含這些數字的文本文件),然後下載較大的圖像文件。

    +0

    謝謝邁克爾,我沒有上傳.txt文件,只有當內容改變時下載圖像 – Alessign

    1

    我會更喜歡在你的應用中使用一些json類型的功能,並通過imagename鍵值檢查並比較舊的圖像名稱字符串和檢索json數據鍵值,如果你發現變化,進行了更改,我最近在做相似類型的應用程序不完全相同,但是是服務器端應用程序,並且必須提供應用程序的離線模式,所以我通過json得到的內容通常會保存到我的圖書館,即使圖像以及下一次檢索我時json數據我只同步哪些是新的類別,圖像或什麼。它的直播流視頻應用程序種類bbc新的應用程序類型