在我看来,iOS8.4可能会发生一些变化.我的完成块NSURLSession dataTaskWithRequest是在主线程上运行而不是执行恢复的线程.这是新的和/或正确的行为吗?
有很多贴子像这样,用户想获得在主线程中完成的代码,但我现在发现它的存在已经(打破我的代码).这是一个孤立的样本:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
// Override point for customization after application launch.
dispatch_async(dispatch_get_global_queue(QOS_CLASS_BACKGROUND, 0)) {
self.threadTest()
}
return true
}
func threadTest() {
println("threadTest on Main Thread: \(NSThread.currentThread().isMainThread)")
let urlString = "http://www.apple.com/contact/"
let url = NSURL(string:urlString)
var request = NSMutableURLRequest(URL: url!)
var configuration = NSURLSessionConfiguration.defaultSessionConfiguration()
var session = NSURLSession(configuration: configuration, delegate:nil, delegateQueue:NSOperationQueue.mainQueue())
var task = session.dataTaskWithRequest(request) {
(data: NSData!, response: NSURLResponse!, error: NSError!) -> Void in
if …Run Code Online (Sandbox Code Playgroud)