首页 > AFURLSessionManager里监听事件为什么要判断object是否是NSURLSessionDownloadTask

AFURLSessionManager里监听事件为什么要判断object是否是NSURLSessionDownloadTask

在第一行判断object时,已经判断了是否是NSURLSessionTask,为什么还要判断或是否是NSURLSessionDownloadTask,NSURLSessionDownloadTask不是已经是NSURLSessionTask的子类了么?


NSURLSessionTask实际上是Class cluster,通过NSURLSession生成的task返回的并不一定是指定的task类型。因此kindOfClass并不总会生效,具体可以参见AFURLSessionManager.m在load方法中的说明。
特定于当前问题,是由于iOS 7上__NSCFURLSessionDownloadTask的基类并不是__NSCFURLSessionTask,因此isKindOfClass会出错。查看对应的commit就可以知道了。

【热门文章】
【热门文章】