首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >创建全局NSMutableSet

创建全局NSMutableSet
EN

Stack Overflow用户
提问于 2012-02-17 09:33:01
回答 1查看 161关注 0票数 0

关于SO问题的答案:Keeping track of changes in a UIView,我需要帮助设置NSMutableSet的全局方面。在我的appdelegate.h文件中,我得到了以下内容:

代码语言:javascript
复制
@interface AppDelegate : NSObject <UIApplicationDelegate> {
UIWindow *window;
ViewController *viewController;
NSMutableSet *statesTouched;
}

在我的应用程序中有这个。

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    
statesTouched = [[NSMutableSet alloc]init];
[window addSubview:viewController.view];
[window makeKeyAndVisible];
return YES;
}

在我的viewcontroller.h er.h文件中,我像这样添加了对象:

代码语言:javascript
复制
[statesTouched addObject:touchedStateName];

但是我正在为statesTouched获取一个未声明的标识符。我从来没有尝试过将这样的东西放到我的应用程序代理中,我对它应该如何工作感到有点困惑。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-17 09:35:38

这是因为它是AppDelegate的实例变量,而不是视图控制器。如果将声明和初始化移动到视图控制器,错误就会消失。不过,它不会让它成为一个全局变量,如果它对你有效的话,这是很好的。( not )

如果它对您不起作用,请将变量设置为真正的全局变量:将声明移出应用程序委托,并添加extern关键字,如下所示:

代码语言:javascript
复制
extern NSMutableSet *statesTouched;

现在在.m文件中添加定义,如下所示:

代码语言:javascript
复制
NSMutableSet *statesTouched;

确保定义在@implementation块之外。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9321725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档