我在appDelegate中创建了一个单例(称为sharedinstance),理想情况下我想从我的代码中的所有其他对象/实例访问它,但每次我想访问其中的方法/ var时,我都是必须做
Game *sharedInstance = [Game sharedInstance];
在任何其他实例中的任何方法都可以做类似的事情。
[sharedInstance.myMethod]
我尝试了
Game *sharedInstance;
在另一个实例的.h文件中,但是当我运行代码时,Game = 0.我只是试着把
Game *sharedInstance = [Game sharedInstance];
在其他情况下,init方法,但这也没有帮助。
答案 0 :(得分:3)
你的问题与单身人士无关,只是不知道如何申报和使用变量和方法。您需要获取Game的实例来调用它上面的方法,您可以使用[Game sharedInstance]执行此操作。然后,您需要在其上调用方法,或者将其分配给实例变量以稍后调用方法。
即。之一:
[[Game sharedInstance] method]
或
(in the .h)
Game *sharedInstance
(in the init method in your .m)
sharedInstance = [Game sharedInstance];
(elsewhere in your .m)
[sharedInstance method];
答案 1 :(得分:1)
在.m文件的Init方法中使用此
[[Game sharedInstance] method];
答案 2 :(得分:0)
...每次我想访问其中的方法/ var时,我都要做...
是。在使用对象之前,无论它是否是单独的共享对象,您都必须获得对象的引用。调用单例的-sharedInstance
方法是一种方法。另一个选择是声明一个指向单例的全局变量,但是考虑到单例通常被用作全局变量的奇特替代品,这似乎是一个糟糕的想法。