iOS16.0升级后,发现xcode对线程访问控制非常的严格
这是一段加载html到富文本上的代码 [[NSMutableAttributedString alloc] initWithData:data options:nil documentAttributes,iOS16以前都没问题,现在发现初始化NSMutableAttributedString这个方法不能再主线程中初始化,需要在全局队列中初始化后回到主线程再使用;
NSData *data = [infoModel.content dataUsingEncoding:NSUnicodeStringEncoding];
//设置富文本
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
NSMutableAttributedString *attStr = [[NSMutableAttributedString alloc] initWithData:data options:options documentAttributes:nil error:nil];
dispatch_async(dispatch_get_main_queue(), ^{
[self updateNoticeContent:attStr];
});
});
网友评论