Bläddra i källkod

[Refactoring] Replace many of force unwrapping usages with optional binding and where clause

Syo Ikeda 10 år sedan
förälder
incheckning
9041e45aa0

+ 2 - 2
Example/DetailViewController.swift

@@ -146,11 +146,11 @@ class DetailViewController: UITableViewController {
     }
 
     override func tableView(tableView: UITableView, titleForFooterInSection section: Int) -> String {
-        if Sections(rawValue: section)! == .Body && self.elapsedTime != nil {
+        if Sections(rawValue: section) == .Body, let elapsedTime = self.elapsedTime {
             let numberFormatter = NSNumberFormatter()
             numberFormatter.numberStyle = .DecimalStyle
 
-            return "Elapsed Time: \(numberFormatter.stringFromNumber(self.elapsedTime!)) sec"
+            return "Elapsed Time: \(numberFormatter.stringFromNumber(elapsedTime)) sec"
         }
 
         return ""

+ 6 - 6
Source/Download.swift

@@ -150,8 +150,8 @@ extension Request {
         // MARK: Delegate Methods
 
         func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) {
-            if downloadTaskDidFinishDownloadingToURL != nil {
-                let destination = downloadTaskDidFinishDownloadingToURL!(session, downloadTask, location)
+            if let downloadTaskDidFinishDownloadingToURL = self.downloadTaskDidFinishDownloadingToURL {
+                let destination = downloadTaskDidFinishDownloadingToURL(session, downloadTask, location)
                 var fileManagerError: NSError?
 
                 NSFileManager.defaultManager().moveItemAtURL(location, toURL: destination, error: &fileManagerError)
@@ -163,8 +163,8 @@ extension Request {
         }
 
         func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
-            if downloadTaskDidWriteData != nil {
-                downloadTaskDidWriteData!(session, downloadTask, bytesWritten, totalBytesWritten, totalBytesExpectedToWrite)
+            if let downloadTaskDidWriteData = self.downloadTaskDidWriteData {
+                downloadTaskDidWriteData(session, downloadTask, bytesWritten, totalBytesWritten, totalBytesExpectedToWrite)
             } else {
                 progress.totalUnitCount = totalBytesExpectedToWrite
                 progress.completedUnitCount = totalBytesWritten
@@ -174,8 +174,8 @@ extension Request {
         }
 
         func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didResumeAtOffset fileOffset: Int64, expectedTotalBytes: Int64) {
-            if downloadTaskDidResumeAtOffset != nil {
-                downloadTaskDidResumeAtOffset!(session, downloadTask, fileOffset, expectedTotalBytes)
+            if let downloadTaskDidResumeAtOffset = self.downloadTaskDidResumeAtOffset {
+                downloadTaskDidResumeAtOffset(session, downloadTask, fileOffset, expectedTotalBytes)
             } else {
                 progress.totalUnitCount = expectedTotalBytes
                 progress.completedUnitCount = fileOffset

+ 26 - 26
Source/Manager.swift

@@ -208,8 +208,8 @@ public class Manager {
         }
 
         public func URLSession(session: NSURLSession, didReceiveChallenge challenge: NSURLAuthenticationChallenge, completionHandler: ((NSURLSessionAuthChallengeDisposition, NSURLCredential!) -> Void)) {
-            if sessionDidReceiveChallenge != nil {
-                completionHandler(sessionDidReceiveChallenge!(session, challenge))
+            if let sessionDidReceiveChallenge = self.sessionDidReceiveChallenge {
+                completionHandler(sessionDidReceiveChallenge(session, challenge))
             } else {
                 completionHandler(.PerformDefaultHandling, nil)
             }
@@ -243,16 +243,16 @@ public class Manager {
         public func URLSession(session: NSURLSession, task: NSURLSessionTask, willPerformHTTPRedirection response: NSHTTPURLResponse, newRequest request: NSURLRequest, completionHandler: ((NSURLRequest!) -> Void)) {
             var redirectRequest: NSURLRequest? = request
 
-            if taskWillPerformHTTPRedirection != nil {
-                redirectRequest = taskWillPerformHTTPRedirection!(session, task, response, request)
+            if let taskWillPerformHTTPRedirection = self.taskWillPerformHTTPRedirection {
+                redirectRequest = taskWillPerformHTTPRedirection(session, task, response, request)
             }
 
             completionHandler(redirectRequest)
         }
 
         public func URLSession(session: NSURLSession, task: NSURLSessionTask, didReceiveChallenge challenge: NSURLAuthenticationChallenge, completionHandler: ((NSURLSessionAuthChallengeDisposition, NSURLCredential!) -> Void)) {
-            if taskDidReceiveChallenge != nil {
-                completionHandler(taskDidReceiveChallenge!(session, task, challenge))
+            if let taskDidReceiveChallenge = self.taskDidReceiveChallenge {
+                completionHandler(taskDidReceiveChallenge(session, task, challenge))
             } else if let delegate = self[task] {
                 delegate.URLSession(session, task: task, didReceiveChallenge: challenge, completionHandler: completionHandler)
             } else {
@@ -261,24 +261,24 @@ public class Manager {
         }
 
         public func URLSession(session: NSURLSession, task: NSURLSessionTask, needNewBodyStream completionHandler: ((NSInputStream!) -> Void)) {
-            if taskNeedNewBodyStream != nil {
-                completionHandler(taskNeedNewBodyStream!(session, task))
+            if let taskNeedNewBodyStream = self.taskNeedNewBodyStream {
+                completionHandler(taskNeedNewBodyStream(session, task))
             } else if let delegate = self[task] {
                 delegate.URLSession(session, task: task, needNewBodyStream: completionHandler)
             }
         }
 
         public func URLSession(session: NSURLSession, task: NSURLSessionTask, didSendBodyData bytesSent: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) {
-            if taskDidSendBodyData != nil {
-                taskDidSendBodyData!(session, task, bytesSent, totalBytesSent, totalBytesExpectedToSend)
+            if let taskDidSendBodyData = self.taskDidSendBodyData {
+                taskDidSendBodyData(session, task, bytesSent, totalBytesSent, totalBytesExpectedToSend)
             } else if let delegate = self[task] as? Request.UploadTaskDelegate {
                 delegate.URLSession(session, task: task, didSendBodyData: bytesSent, totalBytesSent: totalBytesSent, totalBytesExpectedToSend: totalBytesExpectedToSend)
             }
         }
 
         public func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?) {
-            if taskDidComplete != nil {
-                taskDidComplete!(session, task, error)
+            if let taskDidComplete = self.taskDidComplete {
+                taskDidComplete(session, task, error)
             } else if let delegate = self[task] {
                 delegate.URLSession(session, task: task, didCompleteWithError: error)
 
@@ -307,16 +307,16 @@ public class Manager {
         public func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveResponse response: NSURLResponse, completionHandler: ((NSURLSessionResponseDisposition) -> Void)) {
             var disposition: NSURLSessionResponseDisposition = .Allow
 
-            if dataTaskDidReceiveResponse != nil {
-                disposition = dataTaskDidReceiveResponse!(session, dataTask, response)
+            if let dataTaskDidReceiveResponse = self.dataTaskDidReceiveResponse {
+                disposition = dataTaskDidReceiveResponse(session, dataTask, response)
             }
 
             completionHandler(disposition)
         }
 
         public func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didBecomeDownloadTask downloadTask: NSURLSessionDownloadTask) {
-            if dataTaskDidBecomeDownloadTask != nil {
-                dataTaskDidBecomeDownloadTask!(session, dataTask, downloadTask)
+            if let dataTaskDidBecomeDownloadTask = self.dataTaskDidBecomeDownloadTask {
+                dataTaskDidBecomeDownloadTask(session, dataTask, downloadTask)
             } else {
                 let downloadDelegate = Request.DownloadTaskDelegate(task: downloadTask)
                 self[downloadTask] = downloadDelegate
@@ -324,16 +324,16 @@ public class Manager {
         }
 
         public func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) {
-            if dataTaskDidReceiveData != nil {
-                dataTaskDidReceiveData!(session, dataTask, data)
+            if let dataTaskDidReceiveData = self.dataTaskDidReceiveData {
+                dataTaskDidReceiveData(session, dataTask, data)
             } else if let delegate = self[dataTask] as? Request.DataTaskDelegate {
                 delegate.URLSession(session, dataTask: dataTask, didReceiveData: data)
             }
         }
 
         public func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, willCacheResponse proposedResponse: NSCachedURLResponse, completionHandler: ((NSCachedURLResponse!) -> Void)) {
-            if dataTaskWillCacheResponse != nil {
-                completionHandler(dataTaskWillCacheResponse!(session, dataTask, proposedResponse))
+            if let dataTaskWillCacheResponse = self.dataTaskWillCacheResponse {
+                completionHandler(dataTaskWillCacheResponse(session, dataTask, proposedResponse))
             } else if let delegate = self[dataTask] as? Request.DataTaskDelegate {
                 delegate.URLSession(session, dataTask: dataTask, willCacheResponse: proposedResponse, completionHandler: completionHandler)
             } else {
@@ -357,24 +357,24 @@ public class Manager {
         // MARK: Delegate Methods
 
         public func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didFinishDownloadingToURL location: NSURL) {
-            if downloadTaskDidFinishDownloadingToURL != nil {
-                downloadTaskDidFinishDownloadingToURL!(session, downloadTask, location)
+            if let downloadTaskDidFinishDownloadingToURL = self.downloadTaskDidFinishDownloadingToURL {
+                downloadTaskDidFinishDownloadingToURL(session, downloadTask, location)
             } else if let delegate = self[downloadTask] as? Request.DownloadTaskDelegate {
                 delegate.URLSession(session, downloadTask: downloadTask, didFinishDownloadingToURL: location)
             }
         }
 
         public func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didWriteData bytesWritten: Int64, totalBytesWritten: Int64, totalBytesExpectedToWrite: Int64) {
-            if downloadTaskDidWriteData != nil {
-                downloadTaskDidWriteData!(session, downloadTask, bytesWritten, totalBytesWritten, totalBytesExpectedToWrite)
+            if let downloadTaskDidWriteData = self.downloadTaskDidWriteData {
+                downloadTaskDidWriteData(session, downloadTask, bytesWritten, totalBytesWritten, totalBytesExpectedToWrite)
             } else if let delegate = self[downloadTask] as? Request.DownloadTaskDelegate {
                 delegate.URLSession(session, downloadTask: downloadTask, didWriteData: bytesWritten, totalBytesWritten: totalBytesWritten, totalBytesExpectedToWrite: totalBytesExpectedToWrite)
             }
         }
 
         public func URLSession(session: NSURLSession, downloadTask: NSURLSessionDownloadTask, didResumeAtOffset fileOffset: Int64, expectedTotalBytes: Int64) {
-            if downloadTaskDidResumeAtOffset != nil {
-                downloadTaskDidResumeAtOffset!(session, downloadTask, fileOffset, expectedTotalBytes)
+            if let downloadTaskDidResumeAtOffset = self.downloadTaskDidResumeAtOffset {
+                downloadTaskDidResumeAtOffset(session, downloadTask, fileOffset, expectedTotalBytes)
             } else if let delegate = self[downloadTask] as? Request.DownloadTaskDelegate {
                 delegate.URLSession(session, downloadTask: downloadTask, didResumeAtOffset: fileOffset, expectedTotalBytes: expectedTotalBytes)
             }

+ 2 - 2
Source/ParameterEncoding.swift

@@ -103,9 +103,9 @@ public enum ParameterEncoding {
             }
 
             let method = Method(rawValue: mutableURLRequest.HTTPMethod)
-            if method != nil && encodesParametersInURL(method!) {
+            if let method = method where encodesParametersInURL(method) {
                 if let URLComponents = NSURLComponents(URL: mutableURLRequest.URL!, resolvingAgainstBaseURL: false) {
-                    URLComponents.percentEncodedQuery = (URLComponents.percentEncodedQuery != nil ? URLComponents.percentEncodedQuery! + "&" : "") + query(parameters!)
+                    URLComponents.percentEncodedQuery = (URLComponents.percentEncodedQuery.map { $0 + "&" } ?? "") + query(parameters!)
                     mutableURLRequest.URL = URLComponents.URL
                 }
             } else {

+ 24 - 24
Source/Request.swift

@@ -262,8 +262,8 @@ public class Request {
         func URLSession(session: NSURLSession, task: NSURLSessionTask, willPerformHTTPRedirection response: NSHTTPURLResponse, newRequest request: NSURLRequest, completionHandler: ((NSURLRequest!) -> Void)) {
             var redirectRequest: NSURLRequest? = request
 
-            if taskWillPerformHTTPRedirection != nil {
-                redirectRequest = taskWillPerformHTTPRedirection!(session, task, response, request)
+            if let taskWillPerformHTTPRedirection = self.taskWillPerformHTTPRedirection {
+                redirectRequest = taskWillPerformHTTPRedirection(session, task, response, request)
             }
 
             completionHandler(redirectRequest)
@@ -273,8 +273,8 @@ public class Request {
             var disposition: NSURLSessionAuthChallengeDisposition = .PerformDefaultHandling
             var credential: NSURLCredential?
 
-            if taskDidReceiveChallenge != nil {
-                (disposition, credential) = taskDidReceiveChallenge!(session, task, challenge)
+            if let taskDidReceiveChallenge = self.taskDidReceiveChallenge {
+                (disposition, credential) = taskDidReceiveChallenge(session, task, challenge)
             } else {
                 if challenge.previousFailureCount > 0 {
                     disposition = .CancelAuthenticationChallenge
@@ -293,16 +293,16 @@ public class Request {
         func URLSession(session: NSURLSession, task: NSURLSessionTask, needNewBodyStream completionHandler: ((NSInputStream!) -> Void)) {
             var bodyStream: NSInputStream?
 
-            if taskNeedNewBodyStream != nil {
-                bodyStream = taskNeedNewBodyStream!(session, task)
+            if let taskNeedNewBodyStream = self.taskNeedNewBodyStream {
+                bodyStream = taskNeedNewBodyStream(session, task)
             }
 
             completionHandler(bodyStream)
         }
 
         func URLSession(session: NSURLSession, task: NSURLSessionTask, didCompleteWithError error: NSError?) {
-            if taskDidCompleteWithError != nil {
-                taskDidCompleteWithError!(session, task, error)
+            if let taskDidCompleteWithError = self.taskDidCompleteWithError {
+                taskDidCompleteWithError(session, task, error)
             } else {
                 if error != nil {
                     self.error = error
@@ -353,8 +353,8 @@ public class Request {
 
             expectedContentLength = response.expectedContentLength
 
-            if dataTaskDidReceiveResponse != nil {
-                disposition = dataTaskDidReceiveResponse!(session, dataTask, response)
+            if let dataTaskDidReceiveResponse = self.dataTaskDidReceiveResponse {
+                disposition = dataTaskDidReceiveResponse(session, dataTask, response)
             }
 
             completionHandler(disposition)
@@ -365,8 +365,8 @@ public class Request {
         }
 
         func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, didReceiveData data: NSData) {
-            if dataTaskDidReceiveData != nil {
-                dataTaskDidReceiveData!(session, dataTask, data)
+            if let dataTaskDidReceiveData = self.dataTaskDidReceiveData {
+                dataTaskDidReceiveData(session, dataTask, data)
             } else {
                 if let dataStream = dataStream {
                     dataStream(data: data)
@@ -387,8 +387,8 @@ public class Request {
         func URLSession(session: NSURLSession, dataTask: NSURLSessionDataTask, willCacheResponse proposedResponse: NSCachedURLResponse, completionHandler: ((NSCachedURLResponse!) -> Void)) {
             var cachedResponse: NSCachedURLResponse? = proposedResponse
 
-            if dataTaskWillCacheResponse != nil {
-                cachedResponse = dataTaskWillCacheResponse!(session, dataTask, proposedResponse)
+            if let dataTaskWillCacheResponse = self.dataTaskWillCacheResponse {
+                cachedResponse = dataTaskWillCacheResponse(session, dataTask, proposedResponse)
             }
 
             completionHandler(cachedResponse)
@@ -402,14 +402,14 @@ extension Request: Printable {
     /// The textual representation used when written to an output stream, which includes the HTTP method and URL, as well as the response status code if a response has been received.
     public var description: String {
         var components: [String] = []
-        if request.HTTPMethod != nil {
-            components.append(request.HTTPMethod!)
+        if let HTTPMethod = self.request.HTTPMethod {
+            components.append(HTTPMethod)
         }
 
         components.append(request.URL!.absoluteString!)
 
-        if response != nil {
-            components.append("(\(response!.statusCode))")
+        if let response = self.response {
+            components.append("(\(response.statusCode))")
         }
 
         return join(" ", components)
@@ -424,8 +424,8 @@ extension Request: DebugPrintable {
 
         let URL = request.URL
 
-        if request.HTTPMethod != nil && request.HTTPMethod != "GET" {
-            components.append("-X \(request.HTTPMethod!)")
+        if let HTTPMethod = self.request.HTTPMethod where HTTPMethod != "GET" {
+            components.append("-X \(HTTPMethod)")
         }
 
         if let credentialStorage = self.session.configuration.URLCredentialStorage {
@@ -455,8 +455,8 @@ extension Request: DebugPrintable {
             }
         #endif
 
-        if request.allHTTPHeaderFields != nil {
-            for (field, value) in request.allHTTPHeaderFields! {
+        if let headerFields = self.request.allHTTPHeaderFields {
+            for (field, value) in headerFields {
                 switch field {
                 case "Cookie":
                     continue
@@ -466,8 +466,8 @@ extension Request: DebugPrintable {
             }
         }
 
-        if session.configuration.HTTPAdditionalHeaders != nil {
-            for (field, value) in session.configuration.HTTPAdditionalHeaders! {
+        if let additionalHeaders = self.session.configuration.HTTPAdditionalHeaders {
+            for (field, value) in additionalHeaders {
                 switch field {
                 case "Cookie":
                     continue

+ 2 - 2
Source/Upload.swift

@@ -324,8 +324,8 @@ extension Request {
         // MARK: Delegate Methods
 
         func URLSession(session: NSURLSession, task: NSURLSessionTask, didSendBodyData bytesSent: Int64, totalBytesSent: Int64, totalBytesExpectedToSend: Int64) {
-            if taskDidSendBodyData != nil {
-                taskDidSendBodyData!(session, task, bytesSent, totalBytesSent, totalBytesExpectedToSend)
+            if let taskDidSendBodyData = self.taskDidSendBodyData {
+                taskDidSendBodyData(session, task, bytesSent, totalBytesSent, totalBytesExpectedToSend)
             } else {
                 progress.totalUnitCount = totalBytesExpectedToSend
                 progress.completedUnitCount = totalBytesSent

+ 2 - 4
Source/Validation.swift

@@ -40,10 +40,8 @@ extension Request {
     */
     public func validate(validation: Validation) -> Self {
         delegate.queue.addOperationWithBlock {
-            if self.response != nil && self.delegate.error == nil {
-                if !validation(self.request, self.response!) {
-                    self.delegate.error = NSError(domain: AlamofireErrorDomain, code: -1, userInfo: nil)
-                }
+            if let response = self.response where self.delegate.error == nil && !validation(self.request, response) {
+                self.delegate.error = NSError(domain: AlamofireErrorDomain, code: -1, userInfo: nil)
             }
         }