Skip to content
This repository was archived by the owner on May 3, 2021. It is now read-only.

Commit 19c249e

Browse files
committed
MASTER: Merge branch 'develop'
2 parents a774db5 + a214f5a commit 19c249e

File tree

76 files changed

+1508
-1186
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+1508
-1186
lines changed

CHANGELOG

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
https://github.com/kean/DFImageManager/releases

DFImageManager.playground/Contents.swift

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,21 +9,21 @@ let manager = DFImageManager.sharedManager()
99

1010
//: Zero config image fetching. Use shared manager to request an image for the given URL. The completion block is called with a decompressed, fullsize image.
1111
let imageURL = NSURL(string: "http://farm8.staticflickr.com/7315/16455839655_7d6deb1ebf_z_d.jpg")!
12-
manager.imageTaskForResource(imageURL) { (image: UIImage?, _) -> Void in
12+
manager.imageTaskForResource(imageURL) { (image, _, _, _) -> Void in
1313
var fetchedImage = image
1414
}?.resume()
1515
//: Use DFImageRequest class to set specific request parameters like output image size (in pixels).
1616
let request = DFImageRequest(resource: imageURL, targetSize: CGSize(width: 100, height: 100), contentMode: .AspectFill, options: nil)
17-
manager.imageTaskForRequest(request) { (image: UIImage?, _) -> Void in
17+
manager.imageTaskForRequest(request) { (image, _, _, _) -> Void in
1818
var fetchedImage = image
1919
}?.resume()
2020
//: Image manager returns instance of DFImageTask class for each image request. Image task can be used to cancel request or change its priority and more.
21-
let task = manager.imageTaskForResource(NSURL(string: "http://farm6.staticflickr.com/5311/14244377986_c3c660ef30_k_d.jpg")!, completion: { (image, info) -> Void in
21+
let task = manager.imageTaskForResource(NSURL(string: "http://farm6.staticflickr.com/5311/14244377986_c3c660ef30_k_d.jpg")!, completion: { (image, error, _, _) -> Void in
2222
var fetchedImage = image
23-
let error = info[DFImageInfoErrorKey] as! NSError
23+
let responseError = error
2424
})
2525
task?.resume()
26-
task?.setPriority(.High)
26+
task?.priority = .High
2727

2828
task?.cancel()
2929

DFImageManager.playground/timeline.xctimeline

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,52 +3,52 @@
33
version = "3.0">
44
<TimelineItems>
55
<LoggerValueHistoryTimelineItem
6-
documentLocation = "#CharacterRangeLen=95&amp;CharacterRangeLoc=452&amp;EndingColumnNumber=9&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=458986478.158562"
6+
documentLocation = "#CharacterRangeLen=95&amp;CharacterRangeLoc=448&amp;EndingColumnNumber=9&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=460727322.149269"
77
selectedRepresentationIndex = "0"
88
shouldTrackSuperviewWidth = "NO">
99
</LoggerValueHistoryTimelineItem>
1010
<LoggerValueHistoryTimelineItem
11-
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=1357&amp;EndingColumnNumber=9&amp;EndingLineNumber=28&amp;StartingColumnNumber=9&amp;StartingLineNumber=28&amp;Timestamp=458986518.533604"
11+
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=1330&amp;EndingColumnNumber=9&amp;EndingLineNumber=28&amp;StartingColumnNumber=9&amp;StartingLineNumber=28&amp;Timestamp=460727370.467056"
1212
selectedRepresentationIndex = "0"
1313
shouldTrackSuperviewWidth = "NO">
1414
</LoggerValueHistoryTimelineItem>
1515
<LoggerValueHistoryTimelineItem
16-
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=533&amp;EndingColumnNumber=21&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=458986478.159088"
16+
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=529&amp;EndingColumnNumber=21&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=460727322.149807"
1717
selectedRepresentationIndex = "0"
1818
shouldTrackSuperviewWidth = "NO">
1919
</LoggerValueHistoryTimelineItem>
2020
<LoggerValueHistoryTimelineItem
21-
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=886&amp;EndingColumnNumber=21&amp;EndingLineNumber=16&amp;StartingColumnNumber=9&amp;StartingLineNumber=16&amp;Timestamp=458986498.615619"
21+
documentLocation = "#CharacterRangeLen=9&amp;CharacterRangeLoc=861&amp;EndingColumnNumber=21&amp;EndingLineNumber=16&amp;StartingColumnNumber=9&amp;StartingLineNumber=16&amp;Timestamp=460727370.467056"
2222
selectedRepresentationIndex = "0"
2323
shouldTrackSuperviewWidth = "NO">
2424
</LoggerValueHistoryTimelineItem>
2525
<LoggerValueHistoryTimelineItem
26-
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=1242&amp;EndingColumnNumber=21&amp;EndingLineNumber=24&amp;StartingColumnNumber=9&amp;StartingLineNumber=23&amp;Timestamp=458986518.533604"
26+
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=1215&amp;EndingColumnNumber=21&amp;EndingLineNumber=24&amp;StartingColumnNumber=9&amp;StartingLineNumber=23&amp;Timestamp=460727370.467056"
2727
selectedRepresentationIndex = "0"
2828
shouldTrackSuperviewWidth = "NO">
2929
</LoggerValueHistoryTimelineItem>
3030
<LoggerValueHistoryTimelineItem
31-
documentLocation = "#CharacterRangeLen=5&amp;CharacterRangeLoc=1271&amp;EndingColumnNumber=14&amp;EndingLineNumber=24&amp;StartingColumnNumber=9&amp;StartingLineNumber=24&amp;Timestamp=458986518.533604"
31+
documentLocation = "#CharacterRangeLen=5&amp;CharacterRangeLoc=1244&amp;EndingColumnNumber=14&amp;EndingLineNumber=24&amp;StartingColumnNumber=9&amp;StartingLineNumber=24&amp;Timestamp=460727370.467056"
3232
selectedRepresentationIndex = "0"
3333
shouldTrackSuperviewWidth = "NO">
3434
</LoggerValueHistoryTimelineItem>
3535
<LoggerValueHistoryTimelineItem
36-
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=370&amp;EndingColumnNumber=21&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=458986478.159982"
36+
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=366&amp;EndingColumnNumber=21&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=460727322.150682"
3737
selectedRepresentationIndex = "0"
3838
shouldTrackSuperviewWidth = "NO">
3939
</LoggerValueHistoryTimelineItem>
4040
<LoggerValueHistoryTimelineItem
41-
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=585&amp;EndingColumnNumber=21&amp;EndingLineNumber=14&amp;StartingColumnNumber=9&amp;StartingLineNumber=14&amp;Timestamp=458986478.160176"
41+
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=577&amp;EndingColumnNumber=21&amp;EndingLineNumber=14&amp;StartingColumnNumber=9&amp;StartingLineNumber=14&amp;Timestamp=460727322.150865"
4242
selectedRepresentationIndex = "0"
4343
shouldTrackSuperviewWidth = "NO">
4444
</LoggerValueHistoryTimelineItem>
4545
<LoggerValueHistoryTimelineItem
46-
documentLocation = "#CharacterRangeLen=5&amp;CharacterRangeLoc=824&amp;EndingColumnNumber=14&amp;EndingLineNumber=18&amp;StartingColumnNumber=9&amp;StartingLineNumber=18&amp;Timestamp=458986493.428923"
46+
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=817&amp;EndingColumnNumber=14&amp;EndingLineNumber=18&amp;StartingColumnNumber=9&amp;StartingLineNumber=18&amp;Timestamp=460727322.151068"
4747
selectedRepresentationIndex = "0"
4848
shouldTrackSuperviewWidth = "NO">
4949
</LoggerValueHistoryTimelineItem>
5050
<LoggerValueHistoryTimelineItem
51-
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=339&amp;EndingColumnNumber=21&amp;EndingLineNumber=10&amp;StartingColumnNumber=9&amp;StartingLineNumber=10&amp;Timestamp=458986498.845408"
51+
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=335&amp;EndingColumnNumber=21&amp;EndingLineNumber=10&amp;StartingColumnNumber=9&amp;StartingLineNumber=10&amp;Timestamp=460727322.151266"
5252
selectedRepresentationIndex = "0"
5353
shouldTrackSuperviewWidth = "NO">
5454
</LoggerValueHistoryTimelineItem>

DFImageManager.podspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
Pod::Spec.new do |s|
22
s.name = "DFImageManager"
3-
s.version = "0.5.0"
3+
s.version = "0.6.0"
44
s.summary = "Advanced iOS framework for loading images. Zero config, yet immense customization and extensibility."
55
s.homepage = "https://github.com/kean/DFImageManager"
66
s.license = { :type => "MIT", :file => "LICENSE" }
@@ -14,6 +14,7 @@ Pod::Spec.new do |s|
1414

1515
s.subspec "Core" do |ss|
1616
ss.source_files = "DFImageManager/Source/Core/**/*.{h,m}"
17+
ss.private_header_files = "DFImageManager/Source/Core/Private/*.h"
1718
end
1819

1920
s.subspec "UI" do |ss|

DFImageManager/DFImageManager.xcodeproj/project.pbxproj

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,9 @@
1010
0C2074331A6C821200776A43 /* Image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 0CD012681A6C6B16004F6CD3 /* Image.jpg */; };
1111
0C2074341A6C821500776A43 /* TDFImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD0126C1A6C6B16004F6CD3 /* TDFImageManager.m */; };
1212
0C2074351A6C821900776A43 /* TDFTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD0126A1A6C6B16004F6CD3 /* TDFTesting.m */; };
13+
0C3C4C751B5EF3A500C830BA /* DFImageManagerImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C3C4C731B5EF3A500C830BA /* DFImageManagerImageLoader.h */; };
14+
0C3C4C761B5EF3A500C830BA /* DFImageManagerImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C3C4C741B5EF3A500C830BA /* DFImageManagerImageLoader.m */; };
15+
0C3C4C771B5EF3A500C830BA /* DFImageManagerImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C3C4C741B5EF3A500C830BA /* DFImageManagerImageLoader.m */; };
1316
0C3EF4E51A6C6E8D0046FD55 /* DFImageManagerKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C3EF4DA1A6C6E8D0046FD55 /* DFImageManagerKit.framework */; };
1417
0C3EF5891A6C754C0046FD55 /* DFImageManagerKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C3EF5881A6C754C0046FD55 /* DFImageManagerKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
1518
0C44A73A1AAB235800900C6A /* DFPhotosKitImageFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C44A7321AAB235800900C6A /* DFPhotosKitImageFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -167,6 +170,8 @@
167170
08231C32293CC0B246EA8D13 /* Pods.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = Pods.release.xcconfig; path = "../Pods/Target Support Files/Pods/Pods.release.xcconfig"; sourceTree = "<group>"; };
168171
0C2BD4B81A03A28000412BE3 /* libDFImageManager.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libDFImageManager.a; sourceTree = BUILT_PRODUCTS_DIR; };
169172
0C2BD4C31A03A28000412BE3 /* DFImageManagerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DFImageManagerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
173+
0C3C4C731B5EF3A500C830BA /* DFImageManagerImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DFImageManagerImageLoader.h; sourceTree = "<group>"; };
174+
0C3C4C741B5EF3A500C830BA /* DFImageManagerImageLoader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DFImageManagerImageLoader.m; sourceTree = "<group>"; };
170175
0C3EF4D31A6C6E1E0046FD55 /* DFImageManagerTests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "DFImageManagerTests-Info.plist"; sourceTree = "<group>"; };
171176
0C3EF4DA1A6C6E8D0046FD55 /* DFImageManagerKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DFImageManagerKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
172177
0C3EF4E41A6C6E8D0046FD55 /* DFImageManagerKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DFImageManagerKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
@@ -342,6 +347,15 @@
342347
name = Products;
343348
sourceTree = "<group>";
344349
};
350+
0C3C4C721B5EF3A500C830BA /* Private */ = {
351+
isa = PBXGroup;
352+
children = (
353+
0C3C4C731B5EF3A500C830BA /* DFImageManagerImageLoader.h */,
354+
0C3C4C741B5EF3A500C830BA /* DFImageManagerImageLoader.m */,
355+
);
356+
path = Private;
357+
sourceTree = "<group>";
358+
};
345359
0C3EF4D21A6C6E030046FD55 /* Supporting Files */ = {
346360
isa = PBXGroup;
347361
children = (
@@ -375,6 +389,7 @@
375389
0CEEEC811AABC5FC00C212A4 /* Processing */,
376390
0CEEECCA1AABD6E500C212A4 /* Support */,
377391
0CEEECF51AABD9DB00C212A4 /* Utilities */,
392+
0C3C4C721B5EF3A500C830BA /* Private */,
378393
);
379394
path = Core;
380395
sourceTree = "<group>";
@@ -670,6 +685,7 @@
670685
0CEEECD71AABD70400C212A4 /* DFImageResponse.h in Headers */,
671686
0C44A8021AAB273F00900C6A /* DFImageManaging.h in Headers */,
672687
0C44A7431AAB235800900C6A /* NSURL+DFPhotosKit.h in Headers */,
688+
0C3C4C751B5EF3A500C830BA /* DFImageManagerImageLoader.h in Headers */,
673689
);
674690
runOnlyForDeploymentPostprocessing = 0;
675691
};
@@ -953,6 +969,7 @@
953969
0C44A86A1AAB3CE800900C6A /* DFCollectionViewPreheatingController.m in Sources */,
954970
0CBAA6811B5BB4D3002A5E59 /* UIImage+DFImageUtilities.m in Sources */,
955971
0CEEED121AABE36100C212A4 /* DFImageManager.m in Sources */,
972+
0C3C4C761B5EF3A500C830BA /* DFImageManagerImageLoader.m in Sources */,
956973
0CEEECA11AABC84F00C212A4 /* DFImageCache.m in Sources */,
957974
0CEEECE71AABD75F00C212A4 /* DFImageTask.m in Sources */,
958975
0CEEED081AABD9DB00C212A4 /* DFProxyImageManager.m in Sources */,
@@ -1008,6 +1025,7 @@
10081025
0C44A8661AAB3CC000900C6A /* UIImageView+DFImageManager.m in Sources */,
10091026
0CEEECD31AABD70400C212A4 /* DFImageRequest.m in Sources */,
10101027
0CEEED181AABE36100C212A4 /* DFImageManagerConfiguration.m in Sources */,
1028+
0C3C4C771B5EF3A500C830BA /* DFImageManagerImageLoader.m in Sources */,
10111029
0CEEECA51AABC84F00C212A4 /* NSCache+DFImageManager.m in Sources */,
10121030
0CEEECDE1AABD71B00C212A4 /* DFImageManagerDefines.m in Sources */,
10131031
0CEEEC9F1AABC84F00C212A4 /* DFCachedImageResponse.m in Sources */,

DFImageManager/Source/AFNetworking/DFAFImageFetcher.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ extern NSString *const DFAFRequestCachePolicyKey;
6565
/*! A set containing all the supported URL schemes. The default set contains "http", "https", "ftp", "file" and "data" schemes.
6666
@note The property can be changed in case there are any custom protocols supported by NSURLSession.
6767
*/
68-
@property (nonatomic) NSSet *supportedSchemes;
68+
@property (nonatomic, copy) NSSet *supportedSchemes;
6969

7070
/*! Initializes the DFURLImageFetcher with a given session manager.
7171
*/

DFImageManager/Source/AFNetworking/DFAFImageFetcher.m

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
#import "DFImageRequestOptions.h"
2626
#import "DFImageManagerDefines.h"
2727
#import "DFImageRequest.h"
28-
#import "DFImageResponse.h"
2928

3029
NSString *const DFAFRequestCachePolicyKey = @"DFAFRequestCachePolicyKey";
3130

@@ -50,7 +49,7 @@ - (void)cancel {
5049
}
5150

5251
- (void)setQueuePriority:(NSOperationQueuePriority)queuePriority {
53-
[super setQueuePriority:queuePriority];
52+
super.queuePriority = queuePriority;
5453
if (self.priorityHandler) {
5554
self.priorityHandler(queuePriority);
5655
}
@@ -120,7 +119,7 @@ - (BOOL)isRequestCacheEquivalent:(DFImageRequest *)request1 toRequest:(DFImageRe
120119
return request1 == request2 || [(NSURL *)request1.resource isEqual:(NSURL *)request2.resource];
121120
}
122121

123-
- (NSOperation *)startOperationWithRequest:(DFImageRequest *)request progressHandler:(void (^)(double))progressHandler completion:(void (^)(DFImageResponse *))completion {
122+
- (nonnull NSOperation *)startOperationWithRequest:(nonnull DFImageRequest *)request progressHandler:(nullable DFImageFetchingProgressHandler)progressHandler completion:(nullable DFImageFetchingCompletionHandler)completion {
124123
NSURLRequest *URLRequest = [self _URLRequestForImageRequest:request];
125124
DFAFImageFetcher *__weak weakSelf = self;
126125
NSURLSessionDataTask *__block task = [self.sessionManager dataTaskWithRequest:URLRequest completionHandler:^(NSURLResponse *URLResponse, UIImage *result, NSError *error) {
@@ -129,18 +128,18 @@ - (NSOperation *)startOperationWithRequest:(DFImageRequest *)request progressHan
129128
[strongSelf->_dataTaskDelegates removeObjectForKey:task];
130129
}
131130
if (completion) {
132-
completion([[DFImageResponse alloc] initWithImage:result error:error userInfo:nil]);
131+
completion(result, nil, error);
133132
}
134133
}];
135134
[task resume];
136135

137136
// Track progress using dataTaskDidReceiveDataBlock exposed by AFURLSessionManager.
138137
_DFDataTaskDelegate *dataTaskDelegate = [_DFDataTaskDelegate new];
139-
[dataTaskDelegate setDataTaskDidReceiveDataBlock:^(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data) {
138+
dataTaskDelegate.dataTaskDidReceiveDataBlock = ^(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data) {
140139
if (progressHandler) {
141-
progressHandler((double)dataTask.countOfBytesReceived / (double)dataTask.countOfBytesExpectedToReceive);
140+
progressHandler(dataTask.countOfBytesReceived, dataTask.countOfBytesExpectedToReceive);
142141
}
143-
}];
142+
};
144143
@synchronized(self) {
145144
_dataTaskDelegates[task] = dataTaskDelegate;
146145
}

0 commit comments

Comments
 (0)