gpt4 book ai didi

ios - 为什么这样的代码可以编译通过呢?在iOS UIViewController中调用popToRootViewControllerAnimated?

转载 作者:行者123 更新时间:2023-11-28 23:31:37 25 4
gpt4 key购买 nike

我有一个关于 iOS 开发的问题。为什么这个可以编译?

__kindof UIViewController *selectedViewController;
[selectedViewController popToRootViewControllerAnimated:YES];

最佳答案

__kindof 的使用意味着编译器可以假定,在这种情况下,selectedViewController 将属于 UIViewController 类型或任何子类在其层次结构中有 UIViewController

popToRootViewControllerUINavigationController 的一个方法。由于 UINavigationControllerUIViewController 的子类,编译器说:

OK, I'm going to assume you know what you are doing and let you call a method I know to be from a subclass of UIViewController.

这类似于使用强制转换:

UIViewController *selectedViewController;
[(UINavigationController *)selectedViewController popToRootViewControllerAnimated:YES];

您是在告诉编译器信任您。

当然,在这两种情况下,如果在运行时变量实际上不是 UINavigationController,那么代码将在运行时崩溃。

关于ios - 为什么这样的代码可以编译通过呢?在iOS UIViewController中调用popToRootViewControllerAnimated?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56284956/

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