如何在两个类方法之间共享对象

时间:2010-10-03 02:19:03

标签: objective-c cocoa-touch methods object sharing

我在viewDidLoad:方法中创建了一个对象。在我创建的另一种方法中,我想访问此对象。

一种方法是在h文件中声明对象。

另一种方法是将其作为参数传递。

还有其他方法吗?

2 个答案:

答案 0 :(得分:20)

有很多方法可以做到这一点。这不是一个详尽的清单。

  • 将其作为参数传递

  • 宣布全球

  • 将其贴在NSThread的+threadDictionary

  • 声明一个返回对象的类方法

  • 在实例变量

  • 中粘贴对象的引用
  • 声明一个具有静态本地的函数或方法,该函数或方法存储该对象并将其返回

  • 使用关联的引用将它附加到两个方法可以到达的某个随机对象

  • 将一大块内存映射到已知地址,并将引用写入页面的第一个单词

  • 归档指向NSUserDefaults的指针并将其读回

  • 将指针或对象存档到文件系统中的文件并将其读回

  • 将地址绘制成图像并使用光学字符识别将其抓回来

如果没有更多细节,很难说哪种方法最好(除了说如果最后4种方法是正确的解决方案,我会非常惊讶)。


另外一些:

  • 使用音频合成来说明地址,语音识别能够将其读回来(@chockenberry说“你可以低声说出一个弱的参考。”

  • @boredzo建议你模拟一个Apple] [/ C64 casette interface

  • 在音频方面,最实用的可能是使用摩尔斯电码,因为它很容易识别

  • 你可能会使用推送通知,但是你必须指望用户按下按钮给你参考(假设iOS)

答案 1 :(得分:2)

确实有很多选择。如果不知道更多,我会猜测你问题最可能的答案是使用单身人士。查看“Singleton设计模式”,因为这是您问题的最可能答案。