0

我想从 flickr 应用程序中检索最近的活动图像,请任何人建议我如何检索它。提前致谢。

4

1 回答 1

0

这不是最好的方法,但我将为您提供一种在 flickr 上检索最近图片的方法。Standford iTunesU 有一些与此相关的讲座。我几乎从他们那里得到了我所有的信息。这是课程材料的链接:

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

对于基本的非多线程版本,请查看第 10 课并下载Shutterbug Universal。您还需要一个 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 。我没有仔细研究它,但它可能值得检查!

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

于 2013-05-14T16:18:38.790 回答