SDWebImageDataSource в KTPhotoBrowser - iPhone - PullRequest
0 голосов
/ 01 марта 2012

Я использую KTPhotoBrowser для отображения изображений, проанализированных с сервера.Кроме того, я делюсь изображением с помощью Share Kit.Совместное использование работает нормально, когда я использую класс PhotoDataSource NSObject в KTPhotoBrowser.

Однако, если я использую класс SDWebImageDataSource NSObject для обмена изображениями с помощью набора Share, происходит сбойкогда я нажимаю кнопку листа действий со словами

Завершение приложения из-за необработанного исключения NSInvalidArgumentException, причина:

->[SDWebImageDataSource imageAtIndex:]: unrecognized selector sent to instance 0x8682e10

Я могу отобразитьизображение в режиме прокрутки.

Я использовал следующий код, когда нажимал лист действий.В классе KTPhotoScrollViewController.

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {

  if (buttonIndex == actionSheet.cancelButtonIndex) return;

  NSDictionary *table = [[NSDictionary alloc] initWithObjectsAndKeys:@"SHKTwitter", @"Twitter", @"SHKFacebook", @"Facebook", @"SHKMail", SHKLocalizedString(@"Email", nil), nil];
  NSString *sharersName = [actionSheet buttonTitleAtIndex:buttonIndex];
  Class SharersClass = NSClassFromString([table objectForKey:sharersName]);

  [table release];

  NSLog(@"dataaaasrc-- %@",dataSource_);
  UIImage *image = [dataSource_ imageAtIndex:currentIndex_];
  SHKItem *item = [SHKItem image:image title:@"Look at this picture!"];

  [SharersClass performSelector:@selector(shareItem:) withObject:item];      
}

В NSLog я получил следующее:

dataaaasrc--SDWebImageDataSource: 0x8682e10 //betwn lessthan and greater than symbols

-[SDWebImageDataSource imageAtIndex:]: unrecognized selector sent to instance 0x8682e10

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[SDWebImageDataSource imageAtIndex:]: unrecognized selector sent to instance 0x8682e10'
*** First throw call stack:

1 Ответ

0 голосов
/ 12 марта 2012

Мне удалось создать кнопку «Сохранить изображение», в том же месте, где вы хотите кнопку Sharekit, используя некоторый код из примера, который поставляется с KTPhotoBrowser.(Я посмотрел в TabBarSample с FlickrSample)

В SDWebImageDataSource.m я добавил это:

- (UIImage *)imageWithURLString:(NSString *)string {
    NSURL *url = [NSURL URLWithString:string];
    NSData *data = [NSData dataWithContentsOfURL:url];
    UIImage *image = [UIImage imageWithData:data];

    return image;
}

- (UIImage *)imageSourceAtIndex:(NSInteger)index {
    NSArray *imageUrls = [images_ objectAtIndex:index];
    NSString *url = [imageUrls objectAtIndex:FULL_SIZE_INDEX];

    return [self imageWithURLString:url];
}


В KTPhotoBrowserDataSource.h:

- (UIImage *)imageSourceAtIndex:(NSInteger)index;

ТогдаВы можете сделать свой звонок так:

UIImage *image = [dataSource_ imageSourceAtIndex:currentIndex_];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...