2017-10-19 147 views
0

我认为我发现了Objective-C在iOS 11中的一个bug。如果您使用大量文本字段或文本视图创建空项目,则会看到CPU使用率失控。通过仪器,我发现即使您释放文本字段,使光标/插入符闪烁的事件也会继续被调用。UITextField/UITextView - iOS 11 - CPU使用率高

我有一个很大的项目,每个表格中有两个textfields,我真的不知道如何解决它。具有讽刺意味的是,即使您没有看到闪烁的光标,也会调用此事件。

任何人都遇到过这个问题?

这是现在被称为:

Main Thread 
     start 
      0x100b2fcde 
       UIApplicationMain 
        GSEventRunModal 
          CFRunLoopRunSpecific 
           _CFRunLoopRun 
            _CFRunLoopDoTimer 
             _DFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION_ 
               _NFFireTimer 
                -[UITextSelectionView caretBlinkTimerFired:] 
       48%         - [UITextSelectionView showCaret:] 
       48%         -[UITextSelectView hideCaret:] 

附: 我在iOS 10.3上尝试了相同的程序,它工作正常。

+0

我在iOS 11.0.3上测试我的应用程序时遇到了同样的错误。我分析了仪器的CPU使用情况,发现UITextView方法不断被调用,并增加CPU使用率,每次重点都是UITextView。不幸的是,等待下一个iOS版本。 –

+0

我在Apple Bug Reporter官方网站上打开了一个报告,这里我们正在讨论它:https://forums.developer.apple.com/thread/89616?sr=stream&ru=593697 –

回答

0

直到Apple解决它,我看到用空白字符串@“”替换文本字段文本解决了问题。

+0

是的,我已经看到它了苹果论坛,仍然希望他们能够尽快修复它,因为我有很多textview/textfields。谢谢! –

0

随着iOS更新11.1,根据我的测试,问题似乎得到解决。通过此更新,当UITextView或UITexField失去焦点时,CPU使用率会下降。

+0

与11.1测试版相同。我会尝试正式发布。 –