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

Commit

Permalink
MASTER: Merge branch 'develop'
Browse files Browse the repository at this point in the history
  • Loading branch information
kean committed Aug 8, 2015
2 parents a774db5 + a214f5a commit 19c249e
Show file tree
Hide file tree
Showing 76 changed files with 1,508 additions and 1,186 deletions.
1 change: 1 addition & 0 deletions CHANGELOG
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
https://github.com/kean/DFImageManager/releases
10 changes: 5 additions & 5 deletions DFImageManager.playground/Contents.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,21 +9,21 @@ let manager = DFImageManager.sharedManager()

//: 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.
let imageURL = NSURL(string: "http://farm8.staticflickr.com/7315/16455839655_7d6deb1ebf_z_d.jpg")!
manager.imageTaskForResource(imageURL) { (image: UIImage?, _) -> Void in
manager.imageTaskForResource(imageURL) { (image, _, _, _) -> Void in
var fetchedImage = image
}?.resume()
//: Use DFImageRequest class to set specific request parameters like output image size (in pixels).
let request = DFImageRequest(resource: imageURL, targetSize: CGSize(width: 100, height: 100), contentMode: .AspectFill, options: nil)
manager.imageTaskForRequest(request) { (image: UIImage?, _) -> Void in
manager.imageTaskForRequest(request) { (image, _, _, _) -> Void in
var fetchedImage = image
}?.resume()
//: 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.
let task = manager.imageTaskForResource(NSURL(string: "http://farm6.staticflickr.com/5311/14244377986_c3c660ef30_k_d.jpg")!, completion: { (image, info) -> Void in
let task = manager.imageTaskForResource(NSURL(string: "http://farm6.staticflickr.com/5311/14244377986_c3c660ef30_k_d.jpg")!, completion: { (image, error, _, _) -> Void in
var fetchedImage = image
let error = info[DFImageInfoErrorKey] as! NSError
let responseError = error
})
task?.resume()
task?.setPriority(.High)
task?.priority = .High

task?.cancel()

Expand Down
20 changes: 10 additions & 10 deletions DFImageManager.playground/timeline.xctimeline
Original file line number Diff line number Diff line change
Expand Up @@ -3,52 +3,52 @@
version = "3.0">
<TimelineItems>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=95&amp;CharacterRangeLoc=452&amp;EndingColumnNumber=9&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=458986478.158562"
documentLocation = "#CharacterRangeLen=95&amp;CharacterRangeLoc=448&amp;EndingColumnNumber=9&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=460727322.149269"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=1357&amp;EndingColumnNumber=9&amp;EndingLineNumber=28&amp;StartingColumnNumber=9&amp;StartingLineNumber=28&amp;Timestamp=458986518.533604"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=1330&amp;EndingColumnNumber=9&amp;EndingLineNumber=28&amp;StartingColumnNumber=9&amp;StartingLineNumber=28&amp;Timestamp=460727370.467056"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=533&amp;EndingColumnNumber=21&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=458986478.159088"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=529&amp;EndingColumnNumber=21&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=460727322.149807"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=886&amp;EndingColumnNumber=21&amp;EndingLineNumber=16&amp;StartingColumnNumber=9&amp;StartingLineNumber=16&amp;Timestamp=458986498.615619"
documentLocation = "#CharacterRangeLen=9&amp;CharacterRangeLoc=861&amp;EndingColumnNumber=21&amp;EndingLineNumber=16&amp;StartingColumnNumber=9&amp;StartingLineNumber=16&amp;Timestamp=460727370.467056"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=1242&amp;EndingColumnNumber=21&amp;EndingLineNumber=24&amp;StartingColumnNumber=9&amp;StartingLineNumber=23&amp;Timestamp=458986518.533604"
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=1215&amp;EndingColumnNumber=21&amp;EndingLineNumber=24&amp;StartingColumnNumber=9&amp;StartingLineNumber=23&amp;Timestamp=460727370.467056"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=5&amp;CharacterRangeLoc=1271&amp;EndingColumnNumber=14&amp;EndingLineNumber=24&amp;StartingColumnNumber=9&amp;StartingLineNumber=24&amp;Timestamp=458986518.533604"
documentLocation = "#CharacterRangeLen=5&amp;CharacterRangeLoc=1244&amp;EndingColumnNumber=14&amp;EndingLineNumber=24&amp;StartingColumnNumber=9&amp;StartingLineNumber=24&amp;Timestamp=460727370.467056"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=370&amp;EndingColumnNumber=21&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=458986478.159982"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=366&amp;EndingColumnNumber=21&amp;EndingLineNumber=11&amp;StartingColumnNumber=9&amp;StartingLineNumber=11&amp;Timestamp=460727322.150682"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=585&amp;EndingColumnNumber=21&amp;EndingLineNumber=14&amp;StartingColumnNumber=9&amp;StartingLineNumber=14&amp;Timestamp=458986478.160176"
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=577&amp;EndingColumnNumber=21&amp;EndingLineNumber=14&amp;StartingColumnNumber=9&amp;StartingLineNumber=14&amp;Timestamp=460727322.150865"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=5&amp;CharacterRangeLoc=824&amp;EndingColumnNumber=14&amp;EndingLineNumber=18&amp;StartingColumnNumber=9&amp;StartingLineNumber=18&amp;Timestamp=458986493.428923"
documentLocation = "#CharacterRangeLen=0&amp;CharacterRangeLoc=817&amp;EndingColumnNumber=14&amp;EndingLineNumber=18&amp;StartingColumnNumber=9&amp;StartingLineNumber=18&amp;Timestamp=460727322.151068"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
<LoggerValueHistoryTimelineItem
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=339&amp;EndingColumnNumber=21&amp;EndingLineNumber=10&amp;StartingColumnNumber=9&amp;StartingLineNumber=10&amp;Timestamp=458986498.845408"
documentLocation = "#CharacterRangeLen=12&amp;CharacterRangeLoc=335&amp;EndingColumnNumber=21&amp;EndingLineNumber=10&amp;StartingColumnNumber=9&amp;StartingLineNumber=10&amp;Timestamp=460727322.151266"
selectedRepresentationIndex = "0"
shouldTrackSuperviewWidth = "NO">
</LoggerValueHistoryTimelineItem>
Expand Down
3 changes: 2 additions & 1 deletion DFImageManager.podspec
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
Pod::Spec.new do |s|
s.name = "DFImageManager"
s.version = "0.5.0"
s.version = "0.6.0"
s.summary = "Advanced iOS framework for loading images. Zero config, yet immense customization and extensibility."
s.homepage = "https://github.com/kean/DFImageManager"
s.license = { :type => "MIT", :file => "LICENSE" }
Expand All @@ -14,6 +14,7 @@ Pod::Spec.new do |s|

s.subspec "Core" do |ss|
ss.source_files = "DFImageManager/Source/Core/**/*.{h,m}"
ss.private_header_files = "DFImageManager/Source/Core/Private/*.h"
end

s.subspec "UI" do |ss|
Expand Down
18 changes: 18 additions & 0 deletions DFImageManager/DFImageManager.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,9 @@
0C2074331A6C821200776A43 /* Image.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 0CD012681A6C6B16004F6CD3 /* Image.jpg */; };
0C2074341A6C821500776A43 /* TDFImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD0126C1A6C6B16004F6CD3 /* TDFImageManager.m */; };
0C2074351A6C821900776A43 /* TDFTesting.m in Sources */ = {isa = PBXBuildFile; fileRef = 0CD0126A1A6C6B16004F6CD3 /* TDFTesting.m */; };
0C3C4C751B5EF3A500C830BA /* DFImageManagerImageLoader.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C3C4C731B5EF3A500C830BA /* DFImageManagerImageLoader.h */; };
0C3C4C761B5EF3A500C830BA /* DFImageManagerImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C3C4C741B5EF3A500C830BA /* DFImageManagerImageLoader.m */; };
0C3C4C771B5EF3A500C830BA /* DFImageManagerImageLoader.m in Sources */ = {isa = PBXBuildFile; fileRef = 0C3C4C741B5EF3A500C830BA /* DFImageManagerImageLoader.m */; };
0C3EF4E51A6C6E8D0046FD55 /* DFImageManagerKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 0C3EF4DA1A6C6E8D0046FD55 /* DFImageManagerKit.framework */; };
0C3EF5891A6C754C0046FD55 /* DFImageManagerKit.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C3EF5881A6C754C0046FD55 /* DFImageManagerKit.h */; settings = {ATTRIBUTES = (Public, ); }; };
0C44A73A1AAB235800900C6A /* DFPhotosKitImageFetcher.h in Headers */ = {isa = PBXBuildFile; fileRef = 0C44A7321AAB235800900C6A /* DFPhotosKitImageFetcher.h */; settings = {ATTRIBUTES = (Public, ); }; };
Expand Down Expand Up @@ -167,6 +170,8 @@
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>"; };
0C2BD4B81A03A28000412BE3 /* libDFImageManager.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libDFImageManager.a; sourceTree = BUILT_PRODUCTS_DIR; };
0C2BD4C31A03A28000412BE3 /* DFImageManagerTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DFImageManagerTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
0C3C4C731B5EF3A500C830BA /* DFImageManagerImageLoader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DFImageManagerImageLoader.h; sourceTree = "<group>"; };
0C3C4C741B5EF3A500C830BA /* DFImageManagerImageLoader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DFImageManagerImageLoader.m; sourceTree = "<group>"; };
0C3EF4D31A6C6E1E0046FD55 /* DFImageManagerTests-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "DFImageManagerTests-Info.plist"; sourceTree = "<group>"; };
0C3EF4DA1A6C6E8D0046FD55 /* DFImageManagerKit.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = DFImageManagerKit.framework; sourceTree = BUILT_PRODUCTS_DIR; };
0C3EF4E41A6C6E8D0046FD55 /* DFImageManagerKitTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = DFImageManagerKitTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
Expand Down Expand Up @@ -342,6 +347,15 @@
name = Products;
sourceTree = "<group>";
};
0C3C4C721B5EF3A500C830BA /* Private */ = {
isa = PBXGroup;
children = (
0C3C4C731B5EF3A500C830BA /* DFImageManagerImageLoader.h */,
0C3C4C741B5EF3A500C830BA /* DFImageManagerImageLoader.m */,
);
path = Private;
sourceTree = "<group>";
};
0C3EF4D21A6C6E030046FD55 /* Supporting Files */ = {
isa = PBXGroup;
children = (
Expand Down Expand Up @@ -375,6 +389,7 @@
0CEEEC811AABC5FC00C212A4 /* Processing */,
0CEEECCA1AABD6E500C212A4 /* Support */,
0CEEECF51AABD9DB00C212A4 /* Utilities */,
0C3C4C721B5EF3A500C830BA /* Private */,
);
path = Core;
sourceTree = "<group>";
Expand Down Expand Up @@ -670,6 +685,7 @@
0CEEECD71AABD70400C212A4 /* DFImageResponse.h in Headers */,
0C44A8021AAB273F00900C6A /* DFImageManaging.h in Headers */,
0C44A7431AAB235800900C6A /* NSURL+DFPhotosKit.h in Headers */,
0C3C4C751B5EF3A500C830BA /* DFImageManagerImageLoader.h in Headers */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand Down Expand Up @@ -953,6 +969,7 @@
0C44A86A1AAB3CE800900C6A /* DFCollectionViewPreheatingController.m in Sources */,
0CBAA6811B5BB4D3002A5E59 /* UIImage+DFImageUtilities.m in Sources */,
0CEEED121AABE36100C212A4 /* DFImageManager.m in Sources */,
0C3C4C761B5EF3A500C830BA /* DFImageManagerImageLoader.m in Sources */,
0CEEECA11AABC84F00C212A4 /* DFImageCache.m in Sources */,
0CEEECE71AABD75F00C212A4 /* DFImageTask.m in Sources */,
0CEEED081AABD9DB00C212A4 /* DFProxyImageManager.m in Sources */,
Expand Down Expand Up @@ -1008,6 +1025,7 @@
0C44A8661AAB3CC000900C6A /* UIImageView+DFImageManager.m in Sources */,
0CEEECD31AABD70400C212A4 /* DFImageRequest.m in Sources */,
0CEEED181AABE36100C212A4 /* DFImageManagerConfiguration.m in Sources */,
0C3C4C771B5EF3A500C830BA /* DFImageManagerImageLoader.m in Sources */,
0CEEECA51AABC84F00C212A4 /* NSCache+DFImageManager.m in Sources */,
0CEEECDE1AABD71B00C212A4 /* DFImageManagerDefines.m in Sources */,
0CEEEC9F1AABC84F00C212A4 /* DFCachedImageResponse.m in Sources */,
Expand Down
2 changes: 1 addition & 1 deletion DFImageManager/Source/AFNetworking/DFAFImageFetcher.h
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ extern NSString *const DFAFRequestCachePolicyKey;
/*! A set containing all the supported URL schemes. The default set contains "http", "https", "ftp", "file" and "data" schemes.
@note The property can be changed in case there are any custom protocols supported by NSURLSession.
*/
@property (nonatomic) NSSet *supportedSchemes;
@property (nonatomic, copy) NSSet *supportedSchemes;

/*! Initializes the DFURLImageFetcher with a given session manager.
*/
Expand Down
13 changes: 6 additions & 7 deletions DFImageManager/Source/AFNetworking/DFAFImageFetcher.m
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@
#import "DFImageRequestOptions.h"
#import "DFImageManagerDefines.h"
#import "DFImageRequest.h"
#import "DFImageResponse.h"

NSString *const DFAFRequestCachePolicyKey = @"DFAFRequestCachePolicyKey";

Expand All @@ -50,7 +49,7 @@ - (void)cancel {
}

- (void)setQueuePriority:(NSOperationQueuePriority)queuePriority {
[super setQueuePriority:queuePriority];
super.queuePriority = queuePriority;
if (self.priorityHandler) {
self.priorityHandler(queuePriority);
}
Expand Down Expand Up @@ -120,7 +119,7 @@ - (BOOL)isRequestCacheEquivalent:(DFImageRequest *)request1 toRequest:(DFImageRe
return request1 == request2 || [(NSURL *)request1.resource isEqual:(NSURL *)request2.resource];
}

- (NSOperation *)startOperationWithRequest:(DFImageRequest *)request progressHandler:(void (^)(double))progressHandler completion:(void (^)(DFImageResponse *))completion {
- (nonnull NSOperation *)startOperationWithRequest:(nonnull DFImageRequest *)request progressHandler:(nullable DFImageFetchingProgressHandler)progressHandler completion:(nullable DFImageFetchingCompletionHandler)completion {
NSURLRequest *URLRequest = [self _URLRequestForImageRequest:request];
DFAFImageFetcher *__weak weakSelf = self;
NSURLSessionDataTask *__block task = [self.sessionManager dataTaskWithRequest:URLRequest completionHandler:^(NSURLResponse *URLResponse, UIImage *result, NSError *error) {
Expand All @@ -129,18 +128,18 @@ - (NSOperation *)startOperationWithRequest:(DFImageRequest *)request progressHan
[strongSelf->_dataTaskDelegates removeObjectForKey:task];
}
if (completion) {
completion([[DFImageResponse alloc] initWithImage:result error:error userInfo:nil]);
completion(result, nil, error);
}
}];
[task resume];

// Track progress using dataTaskDidReceiveDataBlock exposed by AFURLSessionManager.
_DFDataTaskDelegate *dataTaskDelegate = [_DFDataTaskDelegate new];
[dataTaskDelegate setDataTaskDidReceiveDataBlock:^(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data) {
dataTaskDelegate.dataTaskDidReceiveDataBlock = ^(NSURLSession *session, NSURLSessionDataTask *dataTask, NSData *data) {
if (progressHandler) {
progressHandler((double)dataTask.countOfBytesReceived / (double)dataTask.countOfBytesExpectedToReceive);
progressHandler(dataTask.countOfBytesReceived, dataTask.countOfBytesExpectedToReceive);
}
}];
};
@synchronized(self) {
_dataTaskDelegates[task] = dataTaskDelegate;
}
Expand Down
Loading

0 comments on commit 19c249e

Please sign in to comment.