这是一个简单的代码(失败)来演示我正在尝试做的事情:
dispatch_async(dispatch_get_global_queue(disPATCH_QUEUE_PRIORITY_DEFAulT,0),^{ Nsstring *HTMLString = @"<p>HTML string</p>"; NSDictionary *options = @{NSdocumentTypedocumentAttribute : NSHTMLTextdocumentType,NSCharacterEnCodingdocumentAttribute : @(NSUTF8StringEnCoding)}; NSError *error = nil; NSAttributedString *attributedText = [[NSAttributedString alloc] initWithData:[HTMLString dataUsingEnCoding:NSUTF8StringEnCoding] options:options documentAttributes:nil error:&error];});
根据this discussion,可能根本无法在后台线程中执行此 *** 作,因为使用NSHTMLTextdocumentType选项创建NSAttributedString使用WebKit,这需要在执行任何异步工作时旋转runloop.
但也许有人想通了这条路?我有非常简单的HTML,只有文本和链接,可能有一种方法来指定从HTML创建NSAttributedString不需要任何“WebKit渲染”?
或者可能有人可以推荐第三方库从不使用WebKit的简单HTML创建NSAttributedStrings?
解决方法 是的,你不能只在主线程的后台线程中.使用Oliver Drobnik的NSAttributedString HTML类.
代码将是这样的 –
NSMutableAttributedString *attrStr = [[NSMutableAttributedString alloc] initWithHTML:<HTML> dataUsingEnCoding:NSUTF8StringEnCoding] documentAttributes:nil];
链接 – https://github.com/InfiniteLoopDK/NSAttributedString-Additions-for-HTML/blob/master/Classes/NSAttributedString%2BHTML.m
总结以上是内存溢出为你收集整理的后台线程中来自HTML的NSAttributedString全部内容,希望文章能够帮你解决后台线程中来自HTML的NSAttributedString所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)