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

nod*_*nja 0 methods cocoa-touch object objective-c sharing

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

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

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

还有其他方法吗?

bbu*_*bum 20

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

  • 将其作为参数传递

  • 宣布全球化

  • 坚持NSThread的 +threadDictionary

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

  • 在实例变量中粘贴对象的引用

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

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

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

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

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

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

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


一些额外的:

  • 使用音频合成来说出地址,语音识别将其读回来(@chockenberry说"你可以低声说得到一个弱的参考.")

  • @boredzo建议您模拟一个Apple] [/ C64 casette界面

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

  • 你可以使用推送通知,但是你必须指望用户按下按钮给你回馈(假设iOS)

  • 我实际上已经完成了Apple II盒式磁带输出(但没有输入):https://bitbucket.org/boredzo/file-to-audio-file/wiki/Home协议包含一个标题,可以让它很容易识别 - 比摩尔斯电码更容易. (3认同)
  • 你也可以通过`NSNotification`发布对象,让另一种方法成为通知的动作 (2认同)