Merge pull request #137 from pinterest/fixPriorityCrashOniOS7

Priority is only available on iOS 8 and above.
This commit is contained in:
Garrett Moon
2016-02-10 13:16:43 -08:00

View File

@@ -11,8 +11,22 @@
#import "PINRemoteImage.h"
#import "PINRemoteImageCallbacks.h"
@interface PINRemoteImageDownloadTask () {
BOOL _canSetDataTaskPriority;
}
@end
@implementation PINRemoteImageDownloadTask
- (instancetype)init
{
if (self = [super init]) {
_canSetDataTaskPriority = [NSURLSessionTask instancesRespondToSelector:@selector(setPriority:)];
}
return self;
}
- (BOOL)hasProgressBlocks
{
__block BOOL hasProgressBlocks = NO;
@@ -57,7 +71,9 @@
- (void)setPriority:(PINRemoteImageManagerPriority)priority
{
[super setPriority:priority];
self.urlSessionTaskOperation.dataTask.priority = dataTaskPriorityWithImageManagerPriority(priority);
if (_canSetDataTaskPriority) {
self.urlSessionTaskOperation.dataTask.priority = dataTaskPriorityWithImageManagerPriority(priority);
}
self.urlSessionTaskOperation.queuePriority = operationPriorityWithImageManagerPriority(priority);
}