在我的一个控制器中,我想访问我的应用程序委托的字段。因此,要检索应用程序委托,我使用以下代码:
[[UIApplication sharedApplication] delegate];
但是当我尝试将其强制转换为我的代表的姓名时,我收到未声明姓名的错误。
我必须在要访问字段的类中导入应用程序委托的头文件吗?
我必须在要访问字段的类中导入应用程序委托的头文件吗?
是。您也可以在预编译的头文件(.pch)中扔掉#import
语句。这将为您提供项目中所有文件中特定类的引用。
或者,您总是可以扮演一种危险的游戏:忽略编译器的“可能不响应”警告,只发送消息而无需将其强制转换为您的特定类。 (将其作为id
处理。)
您必须为应用程序委托提供头文件(MyAppDelegate.h)。您可以按以下方式访问appdelegate成员。请参阅link
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate];
首先在您的viewController类中导入appdelegate类,>
在ViewController.m文件中
# import "SampleAppDelegate.h" *write yours* SampleAppDelegate *appDelegate=(SampleAppDelegate *)[[UIApplication sharedApplication]delegate];
之后,您可以访问appDelegate的字段。例如。
[appDelegate.nameArray count];
nameArray是我在appDelegate中声明的数组。
迅速应使用UIApplication.shared.delegate as! AppDelegate