【问题标题】:Reading an object from another class从另一个类中读取对象
【发布时间】:2011-07-23 15:41:22
【问题描述】:

我将 XCode 4.0.2 用于 iOS4 项目。

当我的应用程序启动时,应用程序委托中的应用程序 didFinishLaunchingWithOptions 方法会从 plist 中加载一个 NSDictionary:

NSString* plistPath = [[NSBundle mainBundle] pathForResource:@"RGBSpaces" ofType:@"plist"];
RGBSpacesDictionary = [NSDictionary dictionaryWithContentsOfFile:plistPath];

NSDictionary 是只读的。如何从任意类中读取 NSDictionary 的一个或多个元素?

谢谢

【问题讨论】:

  • 如果这是应用程序内部使用的数据,您可以考虑将其放入 NSUserDefaults。这将使其普遍可访问。
  • 我不建议将数据放在 AppDelegate 中。如果您想制作该全局数据,请考虑为其创建一个单例类。

标签: iphone ios4


【解决方案1】:
UIApplication *appDelegate = [[UIApplication sharedApplication] delegate];

然后您可以使用 appDelegate 访问其属性,包括字典。

【讨论】:

  • 我不推荐这个。这将需要一个可怕的上调,如果你这样做一次,你会做的越来越多,你的代码会变得非常糟糕。
【解决方案2】:

与 Appdelegate 相比,更简单的选项是为 NSObject 类型的类创建一个类,然后只需在需要的地方导入该类即可更新并获取值。另一个选项是 NSUserDefaults。取决于要使用的要求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 2020-01-15
    • 2022-01-22
    • 2011-09-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多