文本少于10个字符的UITextView会挂起iOS 9

mll*_*llm 13 objective-c uitextview ios

从iOS 9(我使用Xcode 7.0 beta 6(7A192o))开始,如果文本视图的文本少于10个字符,带有UITextView的Objective-C应用程序将挂起.CPU使用率高达99-100%,整个系统挂起.

如何重现:

  1. 从模板(或其他任何东西)创建一个全新的单一视图应用程序.
  2. 在故事板中,在主视图中的任何位置添加具有默认设置的UITextView.
  3. 将文本设置为长度小于10个字符的字符串.
  4. 在模拟器中启动应用程序(任何设备,只要它是iOS 9).
  5. 启动后,在显示单个视图之前,系统将挂起并且CPU使用率将永远达到最大值.
  6. 将文本设置为超过10个字符的任何其他文本,并且应用程序正确运行.a

看起来约束或任何其他设置不会影响此行为.

直接的解决方案就是不要少于10个字符,但是,这是蹩脚的.

您可以查看此github存储库,该存储库也演示了该问题.

我还向Apple提交了一份错误报告(错误号22736256,尽管你可能还没有看到它).

最古怪的.错误.永远.

有没有人也遇到过这个?

Lai*_*Chu 9

花了我半天的时间将错误缩小到UITextView.这必须是有史以来最愚蠢的错误.

您无需确保UITextView至少包含10个字符.只需在Interface Builder中向UITextView添加至少10个字符的默认值即可解决问题.然后,您可以使用代码清空UITextView.

顺便说一句,这是一个Xcode 7错误,而不是iOS9错误.使用Xcode 7构建的新版本将在iOS7和iOS8中产生相同的问题.

  • 我也在这个bug上输了3个小时.你知道,当你浏览所有的销售演讲时,你会在WWDC视频中听到,然后看到他们的IDE和技术的*真实状态......这简直令人难以置信. (2认同)

Tho*_*ana 1

根据Xcode 7.1.1 的发行说明,现在应该修复此问题:

包含 1 到 11 个字符的 UITextView 元素的 Storyboard 和 nib 在 iOS 上加载时不再挂起。(23264732)