iphone - 如何制作全局数组?

标签 iphone iphone-sdk-3.0 global-variables nsmutablearray

所以,我读了this post ,这几乎正是我正在寻找的东西。然而……这不起作用。我想我不会使用单例对象,而是在 Global.h 文件中创建数组,或者将其插入 _Prefix 文件中。

虽然我这样做了两次,但都收到错误:

“static”之前的预期说明符限定符列表

而且它不起作用。所以...我不确定如何让它工作,我可以删除 extern 并且它可以工作,但我觉得我需要它才能使其成为常量。

最终目标是让这个可变数组可以从我的项目中的任何对象或任何文件访问。帮助将不胜感激!

这是我的 Globals.h 文件的代码:

#import <Foundation/Foundation.h>

static extern NSMutableArray * myGlobalArray;

我认为实现文件中不需要任何内容​​。如果我将其放入前缀文件中,错误是相同的。

编辑

因此,我从 Globals 中删除了 .m 文件,并且只有 Globals.h 中的代码。假设我要继续这种使用全局变量的可怕做法(我知道这很糟糕,我只是想测试一下),我现在遇到了一个新错误。它说:

“声明说明符中的多个存储类”

如果我删除“extern”,它会起作用,如果我删除“static”,它会起作用,但是两者都不起作用......现在怎么办?

****双重编辑****

好吧,所以我尝试将数组添加到我的 UIApplication Delegate 中,但我做错了,因为它不起作用。有人能给我一些示例代码来说明在哪里放置它并访问它吗?我不知道它是否应该放在实现中,或者其他地方,一旦数组初始化,如何从其他文件访问它......我是否为数组设置一个新变量,或者其他什么?

最佳答案

只是一般性编程建议——不要共享数组。您无法控制它,并且如果某些内容在某个时间以您意想不到的方式发生更改,则几乎无法追踪。

相反,创建一个内部包含数组的对象,并使该对象成为单例(或者更好的是,为其创建一个工厂)。

每当您想要修改数组时,请调用对象上的方法来执行此操作。如果你这样做,我敢打赌你会发现很多多余的代码,你可以将其分解到这个对象中(例如,在数组中搜索一个值——在对象中创建一个“搜索”方法并传入一个值)。

这看起来似乎是您不必做的很多工作,但您会发现这是相当有趣的工作,并且一旦您看到有多少代码属于该对象,您就会发现您必须这样做...

关于iphone - 如何制作全局数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2481201/

相关文章:

iphone - AFNetworking 与 iOS 4.3 不兼容

iphone - 如何从 iPhone 应用程序中添加联系人?

全局变量的 Python 替代品

iphone - 隐藏/显示 iPhone 相机光圈/快门动画

声明全局变量的 Javascript 情况?

javascript: namespace 污染

iPhone UIImageView 数组

iphone - 如何从 iPhone 的图库中删除选定的照片?

iphone - 有没有办法使用 CFStreamCreatePairWithSocketToHost() 获取套接字引用?

iphone - 适用于 iPhoneSDK 的 Bing map