gpt4 book ai didi

ios - iOS 8 下 NSAttributedString 性能更差

转载 作者:可可西里 更新时间:2023-11-01 03:31:41 26 4
gpt4 key购买 nike

在 iOS 8(和 8.1 beta)下,创建 NSAttributedString 的性能比 7 (2-3x) 差很多。如果您在同一个 View 上使用多个实例,这一点尤其明显,加载 4 个不同的标签会导致用户点击和出现新 View 时超过一秒的延迟。

不幸的是,您甚至不能将它放到另一个线程中,因为它在幕后使用了 WebKit。我已向 Apple 提交了一个错误,但我需要有关解决方法或更好的实现方法的想法。

在viewDidLoad中:

self.labelOne.attributedText = [[NSAttributedString alloc] initWithData:[htmlString dataUsingEncoding:NSUTF8StringEncoding] options:@{ NSDocumentTypeDocumentAttribute: NSHTMLTextDocumentType }
documentAttributes:nil
error:&error];

快速示例项目:https://github.com/BenSS/AttributedStringTest

更新:
iOS9 再次改进,所以速度并没有完全削弱 UI 交互。不幸的是,它仍然没有 iOS7 下那么快。 (使用演示自行测试!)

最佳答案

在今年(2014 年)的 WWDC 上,我向 TextKit 团队提出了这种行为。具体来说,我详细说明了我们中的一些人如何需要支持异步 HTML 解析。他们对没有用于异步创建属性字符串的公共(public) API 感到惊讶。

鉴于我们的一些应用程序的核心处理大量 HTML 文本的渲染,即使在 iOS 7 上,系统提供的渲染也不太理想。所以,我被告知要提交一个错误;关于此问题的错误记录越多,Apple 解决它的可能性就越高。

我的建议是使用DTCoreText ,他们提供了我们在这个问题上所需要的。唯一的其他解决方案是等待。

关于ios - iOS 8 下 NSAttributedString 性能更差,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26281543/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com