如何访问其他类中的应用程序委托字段?

问题描述 投票:3回答:4

在我的一个控制器中,我想访问我的应用程序委托的字段。因此,要检索应用程序委托,我使用以下代码:

[[UIApplication sharedApplication] delegate];

但是当我尝试将其强制转换为我的代表的姓名时,我收到未声明姓名的错误。

我必须在要访问字段的类中导入应用程序委托的头文件吗?

objective-c cocoa-touch
4个回答
6
投票

我必须在要访问字段的类中导入应用程序委托的头文件吗?

是。您也可以在预编译的头文件(.pch)中扔掉#import语句。这将为您提供项目中所有文件中特定类的引用。

或者,您总是可以扮演一种危险的游戏:忽略编译器的“可能不响应”警告,只发送消息而无需将其强制转换为您的特定类。 (将其作为id处理。)


10
投票

您必须为应用程序委托提供头文件(MyAppDelegate.h)。您可以按以下方式访问appdelegate成员。请参阅link

 MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];

3
投票

首先在您的viewController类中导入appdelegate类,>

在ViewController.m文件中

# import "SampleAppDelegate.h" *write yours*

SampleAppDelegate *appDelegate=(SampleAppDelegate *)[[UIApplication sharedApplication]delegate];

之后,您可以访问appDelegate的字段。例如。

[appDelegate.nameArray count];

nameArray是我在appDelegate中声明的数组。


0
投票

迅速应使用UIApplication.shared.delegate as! AppDelegate

© www.soinside.com 2019 - 2024. All rights reserved.