gpt4 book ai didi

ios - 无法在 AppDelegate 中初始化委托(delegate),但在类方法中它可以工作

转载 作者:行者123 更新时间:2023-12-01 18:10:56 24 4
gpt4 key购买 nike

我正在尝试在 didFinishLaunchingWithOptions 内的 AppDelegate 中初始化一个委托(delegate) (MyDelegate)方法如下:

UIStoryboard *myStoryboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
[[someClassName instance] setMyDelegate:[myStoryboard instantiateViewControllerWithIdentifier:@"someVcName"]];

调试时,所有调用都执行良好,但在上述调用后返回 AppDelegate 时,MyDelegate 为 nil。

有趣的是,当我尝试在我编写的类方法中设置委托(delegate)时,它可以工作 - 与上面完全相同的代码。

为什么初始化在 AppDelegate 中不起作用,而在类方法中起作用?

谢谢。

编辑 :

基本上@Leo 解决了这个问题,但解决方案非常简单,因为我使用的是 Storyboard,然后第一个 ViewController 会自动启动(假设您分配了入口点箭头图标):

解决方案:
[[someClassName instance] setMyDelegate:[self.window rootViewController]];

最佳答案

关于方法instantiateViewControllerWithIdentifier
从文件

This method creates a new instance of the specified view controller each time you call it.



所以,在 didFinishLaunchingWithOptions ,您创建一个本地 viewController 实例。

并且,它将在方法完成后被释放。

关于ios - 无法在 AppDelegate 中初始化委托(delegate),但在类方法中它可以工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31558358/

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