在另一个类的应用程序委托中使用 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的主要内容,如果未能解决你的问题,请参考以下文章