gpt4 book ai didi

ios - "Warning: Attempt to present * on * which is already presenting *"的断点

转载 作者:搜寻专家 更新时间:2023-10-30 21:52:42 28 4
gpt4 key购买 nike

有时它会发生 - 从代码的不同地方 - 我们想要做 UIViewController.presentViewController(a, b, c),有时我们已经在呈现了,在这种情况下我们得到:

警告:尝试在已经呈现 * 的 * 上呈现 *

是否有可能打破这个警告?如何为此设置断点?

最佳答案

首先,您需要将符号断点设置为-[UIViewController presentViewController:animated:completion:]。您可以通过 Xcode 的 Add Symbolic Breakpoint 功能轻松添加它。

其次,您需要设置一个条件,以便仅当 View Controller 已经呈现某些内容时才命中断点。从程序上讲,这意味着 presentedViewController 属性是非零的。这里的技巧是访问传递给任何方法调用的 self 隐式参数,这可以通过使用 $arg1 来完成(有关 here 的更多详细信息)。一旦有了这个,剩下的就很简单了。

断点应该是这样的:

Breakpoint
(来源:cristik-test.info)

总结:

符号:-[UIViewController presentViewController:animated:completion:]
条件:[(UIViewController *)$arg1 presentedViewController] != nil

这适用于 Objective-C 和 Swift 项目,因为 UIViewController(仍然)将其公共(public)方法导出为 Objective-C 符号。

关于ios - "Warning: Attempt to present * on * which is already presenting *"的断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39246068/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com