【发布时间】:2011-03-03 02:10:13
【问题描述】:
如何从 someView Controller 访问 AppDelegate 类的属性值而不在视图控制器中创建委托的引用?
【问题讨论】:
标签: iphone objective-c
如何从 someView Controller 访问 AppDelegate 类的属性值而不在视图控制器中创建委托的引用?
【问题讨论】:
标签: iphone objective-c
我不太清楚你的意思 - 有多种方法可以将信息从应用程序委托获取到视图控制器,并且“不创建委托的引用”这句话不清楚。您的选择基本上是:
id propertyValue = [(MyAppDelegate *)[[UIApplication sharedApplication] delegate] myProperty];
@property 并使用 @synthesized,然后您可以让应用委托在视图控制器实例上设置属性。这些选项都不要求您将应用代理的副本保留为 @property,但第一个选项确实引用了一次代理。
【讨论】:
[[UIApplication sharedApplication] delegate] 是在多个类中访问该属性的标准方法。 (说实话;无论如何,您基本上都是在访问单例。无需乘以单例。)
[UIApplication sharedApplication].delegate
您还需要在视图控制器中包含应用委托头文件,并可能将委托从 id 类型转换为您的实际应用委托类。
#include "MyAppDelegate.h"
((MyAppDelegate *)[UIApplication sharedApplication].delegate).myProperty;
【讨论】:
[UIApplication sharedApplication].delegate;
【讨论】: