1
从iOS 9.0开始,NSURLSession#dataTaskWithRequest
可能会返回NSURLSessionDataTask?
,之前它总是返回NSURLSessionDataTask
。 Swift迁移只是建议只需添加一个!
来强制解包任务。但是这仍然让我想知道为什么会发生这种变化。如果返回nil
,这实际上意味着什么?任务的条件不能构成?在应用程序中处理这些错误的最佳方法是什么?如果NSURLSession#dataTaskWithRequest返回nil,意味着什么?
let task = NSURLSession.sharedSession().dataTaskWithRequest(request)
// Swift migrator suggests force unwrapping the optional
let task = NSURLSession.sharedSession().dataTaskWithRequest(request)!
的iOS 8.3
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request
- (NSURLSessionDataTask *)dataTaskWithRequest:(NSURLRequest *)request completionHandler:(void (^)(NSData *data, NSURLResponse *response, NSError *error))completionHandler
的iOS 9.0
- (NSURLSessionDataTask * nullable)dataTaskWithRequest:(NSURLRequest * nonnull)request
- (NSURLSessionDataTask * nullable)dataTaskWithRequest:(NSURLRequest * nonnull)request completionHandler:(void (^ nonnull)(NSData * nullable data, NSURLResponse * nullable response, NSError * nullable error))completionHandler