代码之家  ›  专栏  ›  技术社区  ›  gcstr

基于Cocoa文档的应用程序

  •  0
  • gcstr  · 技术社区  · 15 年前

    我在Cocoa中构建了一个简单的基于文档的应用程序,在我的文档实例之间链接公共数据时遇到了问题。

    我希望有某种AppController,并让我的所有文档访问这个类的同一个实例。

    在document.xib中实例化对象将为每个文档创建不同的实例。在主菜单中实例化对象会使对象不可访问。

    我怎样才能做到?

    2 回复  |  直到 15 年前
        1
  •  1
  •   stigi    15 年前

    典型的方法是创建AppController对象的单例实例。 您也可以创建一个AppController实例并将其保存在AppDelegate中。 然后,您可以通过调用

    [[NSApp delegate] myAppController]

    或者在iPhone上:

    [[UIApplication sharedApplication].delegate myAppController]

    进一步阅读精彩的Cocoawithlove博客 http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

        2
  •  0
  •   Peter Hosey    15 年前

    假设您有充分的理由让单独的文档共享数据(而不是将其放在首选项窗口或其他地方),那么您可能应该将SharedDataController(即AppController)设置为单例。我有一篇关于 the correct way to make one .