如何访问其他类中的app delegate字段?

时间:2011-04-26 06:02:11

标签: objective-c cocoa-touch

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

[[UIApplication sharedApplication] delegate];

但是当我尝试将它强制转换为我的委托名称时,我得到的错误是名称未声明。

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

4 个答案:

答案 0 :(得分:10)

你必须为app delegate提供头文件(MyAppDelegate.h)。你可以访问以下appdelegate成员。请参阅link

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

答案 1 :(得分:6)

  

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

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

或者,你总是可以玩危险的游戏,忽略编译器“可能没有响应”警告,只是发送没有强制转换的消息到你的特定类。 (将其视为id。)

答案 2 :(得分:3)

首先在viewController类中导入appdelegate类,如

在ViewController.m文件中

# import "SampleAppDelegate.h" *write yours*

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

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

[appDelegate.nameArray count];

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

答案 3 :(得分:0)

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