Browse Source

Merge pull request #3146 from AFNetworking/fix/3145

Fixed crash that occurred if you passed a nil URL to the image view
Kevin Harwood 9 years ago
parent
commit
39296373cc
2 changed files with 15 additions and 0 deletions
  1. 8 0
      Tests/Tests/AFUIImageViewTests.m
  2. 7 0
      UIKit+AFNetworking/UIImageView+AFNetworking.m

+ 8 - 0
Tests/Tests/AFUIImageViewTests.m

@@ -131,4 +131,12 @@
     [self waitForExpectationsWithCommonTimeoutUsingHandler:nil];
 }
 
+- (void)testThatNilURLDoesntCrash {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wnonnull"
+    [self.imageView setImageWithURL:nil];
+#pragma clang diagnostic pop
+
+}
+
 @end

+ 7 - 0
UIKit+AFNetworking/UIImageView+AFNetworking.m

@@ -79,6 +79,13 @@
                        success:(void (^)(NSURLRequest *request, NSHTTPURLResponse * _Nullable response, UIImage *image))success
                        failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse * _Nullable response, NSError *error))failure
 {
+
+    if ([urlRequest URL] == nil) {
+        [self cancelImageDownloadTask];
+        self.image = placeholderImage;
+        return;
+    }
+
     if ([self isActiveTaskURLEqualToURLRequest:urlRequest]){
         return;
     }