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

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

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

【问题讨论】:

标签: objective-c cocoa-touch ios uiapplicationdelegate


【解决方案1】:

利用 UIApplication 单例:

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

然后,像这样访问您的数组propertyappDelegate.yourArrayProperty

【讨论】:

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

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

@property(readonly) NSMutableArray *theArray;

然后像这样访问数组:

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

【讨论】:

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