application is modifying the autolayout engine from a background thread解决方案

NSURLSession *session = [NSURLSession sharedSession];
    __weak id safeSelf = self;
    NSURLSessionDataTask *task = [session dataTaskWithRequest:req completionHandler:^(NSData * _Nullable data, NSURLResponse * _Nullable response, NSError * _Nullable error) {
        self.webData = data;
        if (self.webData) {
            // 如果获取到了数据
            NSXMLParser *paser = [[NSXMLParser alloc]initWithData:self.webData];
            paser.delegate = self;
            [paser parse];
        }
        
        if ([self.parseResults isEqualToString:@"false"]) {
            UIAlertController *alert = [UIAlertController alertControllerWithTitle:@"登录失败" message:@"帐号密码错误" preferredStyle:UIAlertControllerStyleAlert];
            UIAlertAction *action = [UIAlertAction actionWithTitle:@"oops" style:UIAlertActionStyleDefault handler:nil];
            [alert addAction:action];
            //dispatch_async(dispatch_get_main_queue(), ^{
                [self presentViewController:alert animated:YES completion:nil];
            //});
            
        }
        

    }];
    [task resume];
    
[self presentViewController:alert animated:YES completion:nil]语句报错,信息为:

application is modifying the autolayout engine from a background thread, which can lead to engine corruption and weird crashes.  This will cause an exception in a future release.

解决方法:

  dispatch_async(dispatch_get_main_queue(), ^{
                [self presentViewController:alert animated:YES completion:nil];
            });

 

 

posted on 2015-10-10 11:09  SomeBod_Y  阅读(786)  评论(0编辑  收藏  举报