在另一个类的应用程序委托中使用 NSMutableArray

Posted

技术标签:

【中文标题】在另一个类的应用程序委托中使用 NSMutableArray【英文标题】:Use NSMutableArray in app delegate in another class 【发布时间】:2011-05-19 16:16:46 【问题描述】:

我的应用委托中有一个NSMutableArray。我希望在我的程序的不同类中使用该可变数组,就好像它是一个全局变量一样。我该怎么做?

是不是像导入header和引用对象一样简单?

【问题讨论】:

将其用作您的代表的 ivar 没有意义吗? objective C: use NSMutableArray in different classes 的可能重复项 更别提NSMutableArray in other Class和Access NSMutableArray from a different Class了。 【参考方案1】:

利用 UIApplication 单例:

YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];

然后,像这样访问您的数组property:appDelegate.yourArrayProperty

【讨论】:

会在头文件中输入吗?我需要导入 appDelegate 类吗? 是的,你需要导入appDelegate类。【参考方案2】:

按照肖恩的说法,让您排列代表的属性

@property(readonly) NSMutableArray *theArray;

然后像这样访问数组:

((YourAppDelegateClass *)[UIApplication sharedApplication].delegate).theArray

【讨论】:

我知道这已经过时了。但是,我有一个问题。如果您将数组设置为只读,这不会破坏 NSMutableArray 的目的,因为没有视图可以添加到它......使其成为 NSArray? 简短答案:否。长答案:指向 NSMutableArray 的指针是只读的(即您不能更改 NSMutableArray 的实例)但数组是可变的(并且 readonly 属性不能更改),以便您可以添加/删除项目。

以上是关于在另一个类的应用程序委托中使用 NSMutableArray的主要内容,如果未能解决你的问题,请参考以下文章

我必须使用协议/委托来让 ViewController 执行在另一个类中创建的 UIButton 的操作吗?

C#如何在另一个类的线程中对Textbox内容进行修改?

将对象添加到排序的 NSMutable 数组并回答索引路径

使用委托在另一个 Sub 内启动线程

将 NSMutable 数组存储到 sqlite 数据库中

如何在另一个更改通知程序类提供程序中使用来自一个更改通知程序类的方法