我不能在ObjectiveFlickr中设置元数据和位置
如果我只做了一次,它会很好,但如果两者都做,它只做第一次。
- (void)flickrAPIRequest:(OFFlickrAPIRequest *)inRequest didCompleteWithResponse:(NSDictionary *)inResponseDictionary{ PRETTY_FUNCTION,NSLog(%s %@,NSLog inRequest.sessionInfo,inResponseDictionary);
if (inRequest.sessionInfo == kUploadImageStep) {
snapPictureDescriptionLabel.text = @"Setting properties...";
NSLog(@"%@", inResponseDictionary);
NSString *photoID = [[inResponseDictionary valueForKeyPath:@"photoid"] textContent];
flickrRequest.sessionInfo = kSetImagePropertiesStep;
[flickrRequest callAPIMethodWithPOST:@"flickr.photos.setMeta" arguments:[NSDictionary dictionaryWithObjectsAndKeys:photoID, @"photo_id", @"Snap and Run", @"title", @"Uploaded from my iPhone/iPod Touch", @"description", nil]];
flickrRequest.sessionInfo = kSetImagePropertiesStep;
[flickrRequest callAPIMethodWithPOST:@"flickr.photos.geo.setLocation" arguments:[NSDictionary dictionaryWithObjectsAndKeys:photoID, @"photo_id",@"34" ,@"lat",@"-118",@"lon", nil]];
}
else if (inRequest.sessionInfo == kSetImagePropertiesStep) {
[self updateUserInterface:nil];
snapPictureDescriptionLabel.text = @"Done";
[UIApplication sharedApplication].idleTimerDisabled = NO;
}}
发布于 2010-08-31 18:04:04
您需要定义一个新步骤(例如: NSString *kSetImageGeoInfoStep = @"kSetImageGeoInfoStep"),并通过在if/else块中添加一个附加条件来容纳geo更新,从而将sessionInfo设置为这个新步骤。代码应该如下所示(免责声明--而不是编译,因此语法错误是可能的:
if (inRequest.sessionInfo == kUploadImageStep) {
snapPictureDescriptionLabel.text = @"Setting properties...";
NSLog(@"%@", inResponseDictionary);
NSString *photoID = [[inResponseDictionary valueForKeyPath:@"photoid"] textContent];
[photoID retain];
flickrRequest.sessionInfo = kSetImagePropertiesStep;
[flickrRequest callAPIMethodWithPOST:@"flickr.photos.setMeta" arguments:[NSDictionary dictionaryWithObjectsAndKeys:photoID, @"photo_id", @"Snap and Run", @"title", @"Uploaded from my iPhone/iPod Touch", @"description", nil]];
}
else if (inRequest.sessionInfo == KSetImagePropertiesStep) {
snapPictureDescriptionLabel.text = @"Setting Geo info...";
flickrRequest.sessionInfo = kSetImageGeoInfoStep;
[flickrRequest callAPIMethodWithPOST:@"flickr.photos.geo.setLocation" arguments:[NSDictionary dictionaryWithObjectsAndKeys:photoID, @"photo_id",@"34" ,@"lat",@"-118",@"lon", nil]];
}
else if (inRequest.sessionInfo == kSetImageGeoInfoStep) {
[self updateUserInterface:nil];
snapPictureDescriptionLabel.text = @"Done";
[photoID release];
photoID = nil;
[UIApplication sharedApplication].idleTimerDisabled = NO;
}https://stackoverflow.com/questions/2489816
复制相似问题