显示带有短文本的UITextView时,应用会冻结

时间:2015-10-15 03:56:40

标签: ios uiscrollview crash uitextview freeze

我有一个简单的标签栏应用程序,在启动项目时,Xcode提供的模板之外没有任何代码。

我添加了一个新的UIViewController,在其中添加了UITextView,并将其中的文本从默认值更改为“控制台”之类的短文。 (Autolayout与否无关紧要。)

当我尝试使用UITextView点按标签后运行应用程序(设备或模拟器 - iOS 9)时,它会冻结应用程序。即使经过很长一段时间,该应用程序也不会崩溃,但所有按钮在退出之前都会完全没有响应。

对于一个简单的单屏幕应用程序,同样的UITextView没有太多文字也是如此。

文本的数量很难确定,它大约是11个字符,但不完全基于长度(不完全基于视觉长度的不同字母的不同数量似乎导致它:11 a'{{{ 1}}或i会使其崩溃,m也会崩溃,但aaaabbbbc不会崩溃。

文字必须简单,归属文字永远不会导致挂起。

似乎在aaaabbbbcc中被卡住了,我可以告诉它从下面第1行的指令到第26行并永远回到第01行(或至少几次通过)但是我不知道知道如何在Xcode的调试视图中内省汇编,所以我也遇到了调试问题。

objc_msgSend

为什么带有短文本的UITextView会导致应用挂起?

编辑:这个问题最初假设挂起只发生在libobjc.A.dylib`objc_msgSend: 01: 0x10c795800 <+0>: testq %rdi, %rdi 02: 0x10c795803 <+3>: jle 0x10c795850 ; <+80> 03: 0x10c795805 <+5>: movq (%rdi), %r11 04: 0x10c795808 <+8>: movq %rsi, %r10 05: 0x10c79580b <+11>: andl 0x18(%r11), %r10d 07: 0x10c79580f <+15>: shlq $0x4, %r10 08: 0x10c795813 <+19>: addq 0x10(%r11), %r10 09: 0x10c795817 <+23>: cmpq (%r10), %rsi 10: 0x10c79581a <+26>: jne 0x10c795820 ; <+32> 11: 0x10c79581c <+28>: jmpq *0x8(%r10) 12: 0x10c795820 <+32>: cmpq $0x1, (%r10) 13: 0x10c795824 <+36>: jbe 0x10c795833 ; <+51> 14: 0x10c795826 <+38>: addq $0x10, %r10 15: 0x10c79582a <+42>: cmpq (%r10), %rsi 16: 0x10c79582d <+45>: jne 0x10c795820 ; <+32> 17: 0x10c79582f <+47>: jmpq *0x8(%r10) 18: 0x10c795833 <+51>: jb 0x10c795871 ; <+113> 19: 0x10c795835 <+53>: movq 0x8(%r10), %r10 20: 0x10c795839 <+57>: jmp 0x10c795845 ; <+69> 21: 0x10c79583b <+59>: cmpq $0x1, (%r10) 22: 0x10c79583f <+63>: jbe 0x10c79584e ; <+78> 23: 0x10c795841 <+65>: addq $0x10, %r10 24: 0x10c795845 <+69>: cmpq (%r10), %rsi 25: 0x10c795848 <+72>: jne 0x10c79583b ; <+59> 26: 0x10c79584a <+74>: jmpq *0x8(%r10) 27: ... continues UITextView,但是在进一步测试时,无论UIScrollView是否存在,都会发生这种情况。

0 个答案:

没有答案