我想从 flickr 应用程序中检索最近的活动图像,请任何人建议我如何检索它。提前致谢。
1 回答
这不是最好的方法,但我将为您提供一种在 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 。我没有仔细研究它,但它可能值得检查!
您的问题没有提供太多细节,所以我希望这个答案足以满足您的需求。