文字less于10个字符的UITextView挂起iOS 9

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

如何重现:

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

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

直接的解决办法就是不less于10个字符,但是,这是不好的。

你可以看看这个也显示了这个问题的github仓库 。

我还向苹果公司提交了一个错误报告(错误号22736256,虽然你可能还没有看到它)。

最古怪的。 错误。 永远。

有人也遇到这个?

根据Xcode 7.1.1的发布logging,现在应该修复:

包含1到11个字符的UITextView元素的故事板和笔尖在iOS上加载时不会再挂起。 (23264732)

花了我半天的时间把错误缩小到UITextView。 这是有史以来最愚蠢的错误。

您不需要确保UITextView至less保留10个字符。 只需在Interface Builder中向UITextView添加至less10个字符的缺省值即可解决问题。 然后,您可以使用代码清空UITextView。

顺便说一下,这是一个Xcode 7的错误,而不是一个iOS9的错误。 使用Xcode 7构build的新版本将在iOS7和iOS8中创build相同的问题。

参考打击。 这是Xcode 7中的一个错误,仍然没有被修复。

http://xcode7criticalbug.blogspot.in/2015/10/uitextview-bug-in-xcode-ios-app-getting.html

它可以通过编程设置UITextView的文本属性来克服。

我已经find了解决scheme,首先检查内存泄漏,请添加特定类的代码行。

– (void)viewWillAppear:(BOOL)animated {

[super viewWillAppear:YES];

}

这对我有帮助我的问题得到解决。