2013-05-02 63 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。 我没有看太多,但它可能值得检查!

您的问题没有提供太多的细节,所以我希望这个答案足以满足您的需求。