Created
March 2, 2015 10:18
-
-
Save kean/ae2b051225208ec4d871 to your computer and use it in GitHub Desktop.
DFImageActivityItemProvider draft
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@interface DFImageActivityItemProvider : UIActivityItemProvider | |
- (instancetype)initWithPlaceholderItem:(id)placeholderItem request:(DFImageRequest *)request; | |
@end | |
@implementation DFImageActivityItemProvider { | |
DFImageRequest *_request; | |
DFImageRequestID *_requestID; | |
} | |
- (instancetype)initWithPlaceholderItem:(id)placeholderItem request:(DFImageRequest *)request { | |
if (self = [super init]) { | |
_request = request; | |
} | |
return self; | |
} | |
- (id)activityViewControllerPlaceholderItem:(UIActivityViewController *)activityViewController { | |
return [UIImage new]; | |
} | |
- (id)item { | |
dispatch_semaphore_t sema = dispatch_semaphore_create(0); | |
UIImage *__block image; | |
_requestID = [[DFImageManager sharedManager] requestImageForRequest:_request completion:^(UIImage *image, NSDictionary *info) { | |
image = image; | |
dispatch_semaphore_signal(sema); | |
}]; | |
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER); | |
return image; | |
} | |
- (void)cancel { | |
[super cancel]; | |
[_requestID cancel]; | |
} | |
@end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment