gpt4 book ai didi

ios - 有没有捷径可以知道,当我运行我的应用程序时,我在哪个 View Controller 中?

转载 作者:可可西里 更新时间:2023-11-01 00:38:31 26 4
gpt4 key购买 nike

我正在处理一个已经存在的应用程序,我想运行该应用程序并在输出中知道我在哪个 View Controller 中,而无需转到每个类和 viewController 并打印其名称。有什么捷径或什么可以帮助我吗??

我已经尝试在每个 ViewController 中加载的 View 中打印

喜欢

print("view did load : MainViewController") 

但我发现这是在浪费时间,因为我有太多的 viewController。我考虑调试,但我真的不知道它的作用或方式。

最佳答案

您可以调整(交换实现)UIViewController.viewDidAppear,以便打印类名。首先定义你的 swizzled 实现:

extension UIViewController {
@objc func printingViewDidAppear(_ animated: Bool) {
print(String(describing: type(of: self)))

// Call the original implementation. This looks like recursion but isn't
printingViewDidAppear(animated)
}
}

然后像这样将默认实现与您的实现交换:

let originalViewDidAppear: Method = class_getInstanceMethod(UIViewController.self, #selector(UIViewController.viewDidAppear(_:)))!

let swizzledViewDidAppear: Method = class_getInstanceMethod(UIViewController.self, #selector(UIViewController.printingViewDidAppear(_:)))!

method_exchangeImplementations(originalViewDidAppear, swizzledViewDidAppear)

这样您就不需要更改任何现有的 View Controller 。

您必须确保在调配后的实现结束时调用原始实现。它看起来像一个递归调用,但它不是。希望对您有所帮助。

关于ios - 有没有捷径可以知道,当我运行我的应用程序时,我在哪个 View Controller 中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56151453/

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