AppDelegate的财产无法访问

时间:2012-09-13 09:10:34

标签: objective-c

我在AppDelegate.m接口中创建一个属性countryNameInitials作为NSMutableArray并合成它。目的是存储全局数据以在表视图中显示。在表视图控制器中:

#import "AppDelegate.h"
...

@implementation
#define AppDelegate [[UIApplication sharedApplication] delegate]
...

问题是我无法使用AppDelegate.countryNameInitials来访问数据。任何的想法?

2 个答案:

答案 0 :(得分:3)

事实是

 [[UIApplication sharedApplication] delegate]

会给你一个通用UIApplcationDelegate;虽然您需要MyOwnAppDelegate(不知道如何调用它)类型才能使用countryNameInitials属性。所以,试试:

 #define AppDelegate ((MyOwnAppDelegate*)[[UIApplication sharedApplication] delegate])

然后

AppDelegate.countryNameInitials

应该有用。

(但我不会对类和宏使用相同的名称。)

答案 1 :(得分:0)

访问countryNameInitials的问题是由于我在AppDelegate.m中声明了该属性。将它移动到AppDelegate.h后,错误就消失了。

附注: 1. AppDelegate因为标识符名称适合我。 @Vakio建议的命名冲突无关紧要。