2013-05-02 83 views

回答

0

這不是這樣做的最好方法,但我會爲您提供一種方法來檢索flickr上的最新圖片。斯坦福德iTunesU有幾個與此有關的講座。我從他們那裏獲得幾乎所有的信息。這裏是一個鏈接到課程材料:

http://www.stanford.edu/class/cs193p/cgi-bin/drupal/

對於基本的,非多線程版本的外觀下講座10和下載攝影愛好者通用。您還需要您目前可以在這裏一個Flickr API鍵:

http://www.flickr.com/services/api/misc.api_keys.html

我將試圖勾勒出你雖然如何去完成你的要求,特別是因爲無論是這些鏈接可能無法左右很長時間。

您將要創建一個類FlickrFetcher什麼的,然後有一個公共類方法

+ (NSArray *)latestGeoreferencedPhotos; 

實施

+ (NSArray *)latestGeoreferencedPhotos 
{ 
    NSString *request = [NSString stringWithFormat:@"http://api.flickr.com/services/rest/?method=flickr.photos.search&per_page=500&license=1,2,4,7&has_geo=1&extras=original_format,tags,description,geo,date_upload,owner_name,place_url"]; 
    return [[self executeFlickrFetch:request] valueForKeyPath:@"photos.photo"]; 
} 

executeFlickrFetch實現:

+ (NSDictionary *)executeFlickrFetch:(NSString *)query 
{ 
    query = [NSString stringWithFormat:@"%@&format=json&nojsoncallback=1&api_key=%@", query, FlickrAPIKey]; 
    query = [query stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]; 
    NSData *jsonData = [[NSString stringWithContentsOfURL:[NSURL URLWithString:query] encoding:NSUTF8StringEncoding error:nil] dataUsingEncoding:NSUTF8StringEncoding]; 
    NSError *error = nil; 
    NSDictionary *results = jsonData ? [NSJSONSerialization JSONObjectWithData:jsonData options:NSJSONReadingMutableContainers|NSJSONReadingMutableLeaves error:&error] : nil; 
    if (error) NSLog(@"[%@ %@] JSON error: %@", NSStringFromClass([self class]), NSStringFromSelector(_cmd), error.localizedDescription); 
    return results; 
} 

你會需要獲取您的API密鑰並定義它(#define FlickrAPIKey @"myAPIkey")或者直接在這裏插入。

在斯坦福當然他們稱之爲latestGeoreferencedPhotos從TVC子類和一組照片在viewDidLoad的數組:在設定器的照片

// photos is a defined property 
self.photos = [FlickrFetcher latestGeoreferencedPhotos]; 

然後他們重新加載的tableView呈現圖像:

- (void)setPhotos:(NSArray *)photos 
{ 
    _photos = photos; 
    [self.tableView reloadData]; 
} 

photos現在是一個字典數組,因此您可以通過如下方式訪問特定圖像數據:

return [self.photos[row][@"title"] description]; // description because could be NSNull 

我找到了一個可能有價值的github資源: https://github.com/lukhnos/objectiveflickr。 我沒有看太多,但它可能值得檢查!

您的問題沒有提供太多的細節,所以我希望這個答案足以滿足您的需求。