关于SO问题的答案:Keeping track of changes in a UIView,我需要帮助设置NSMutableSet的全局方面。在我的appdelegate.h文件中,我得到了以下内容:
@interface AppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
ViewController *viewController;
NSMutableSet *statesTouched;
}在我的应用程序中有这个。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
statesTouched = [[NSMutableSet alloc]init];
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}在我的viewcontroller.h er.h文件中,我像这样添加了对象:
[statesTouched addObject:touchedStateName];但是我正在为statesTouched获取一个未声明的标识符。我从来没有尝试过将这样的东西放到我的应用程序代理中,我对它应该如何工作感到有点困惑。谢谢!
发布于 2012-02-17 09:35:38
这是因为它是AppDelegate的实例变量,而不是视图控制器。如果将声明和初始化移动到视图控制器,错误就会消失。不过,它不会让它成为一个全局变量,如果它对你有效的话,这是很好的。( not )
如果它对您不起作用,请将变量设置为真正的全局变量:将声明移出应用程序委托,并添加extern关键字,如下所示:
extern NSMutableSet *statesTouched;现在在.m文件中添加定义,如下所示:
NSMutableSet *statesTouched;确保定义在@implementation块之外。
https://stackoverflow.com/questions/9321725
复制相似问题