在事务中调用 当点击UISearchBar并显示键盘时

11
我创建了一个包含按钮和文本框的ViewController,当我点击按钮时,会出现一个具有UISearchBar的UITableViewController并显示语言列表。我的问题是,当我第一次运行应用程序并点击UISearchBar时,控制台会出现以下警告信息:

SearchDebugApp[2237:558457] +[CATransaction synchronize] called within transaction SearchDebugApp[2237:558457] +[CATransaction synchronize] called within transaction SearchDebugApp[2237:558457] +[CATransaction synchronize] called within transaction SearchDebugApp[2237:558457] +[CATransaction synchronize] called within transaction

这个消息只会在我第一次点击UISearchBar时出现,应用程序似乎没有任何问题,所以我不知道为什么会发生这种情况,也不知道如何进行调试。
我搜索了这个警告信息,发现这种情况发生在主线程上同时进行多个动画时,但在我的应用程序中,唯一进行的动画是显示键盘时。
您可以在此处克隆项目

6
这似乎是UISearchController或UINavigationController(或两者的组合)内部错误。我创建了一个测试项目,只包含一个放置在UINavigationController中的UIViewController,并添加了UISearchController,但当您首次点击搜索栏时,仍会出现相同的四个警告。它似乎不会引起问题,我也找不到任何消除它的方法。 - Upholder Of Truth
首先感谢您花时间帮助他人,真的非常感激 :) 其次,您认为我应该忽略这个错误吗?您认为我的应用可能因为这些消息而被拒绝吗?谢谢! - cczak
我会感到非常惊讶,因为它们只是内部警告,我们已经收到了几条这样的消息,但我们的应用从未因此被拒绝。(抱歉回复晚了,我开车回家花了2个小时) - Upholder Of Truth
没问题!好的,那知道这点很好。再次感谢。 - cczak
2
@cczak 我今天尝试了一下iOS 11.3 SDK。我也是这样的。(导航控制器与tableViewController和searchController searchBar一起) - gaussblurinc
我也有同样的警告。有什么想法来解决它吗? - tolerate_Me_Thx
1个回答

2

看起来即使在苹果的示例项目中也会发生这种情况:使用UISearchController的表格搜索示例

您可以下载该项目并运行它,您将看到相同的4个[CATransaction synchronize]在事务中被调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接