2012-10-30 62 views
-3

我在我的appDelegate中創建了一個單身人士(稱爲sharedinstance),理想情況下我想從我的代碼中的所有其他對象/實例訪問它,但每次我想訪問在它的方法/ VAR,我在做如何在obj-c/ios中使用單身人士

Game *sharedInstance = [Game sharedInstance]; 

在任何方法在任何其他情況下,能夠做這樣的事情..

[sharedInstance.myMethod] 

我試圖把

Game *sharedInstance; 
在其他情況下的.h文件

,但是當我運行的代碼,遊戲= 0。我只是試圖把

Game *sharedInstance = [Game sharedInstance]; 

在其他情況下init方法,但是這不是幫助無論是。

回答

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]; 
0

...每次我想在它訪問的方法/ VAR,我有做...

是的。在使用對象之前,無論它是否爲單例共享對象,您都必須獲取對象的引用。調用你的單身人士的-sharedInstance方法是做到這一點的一種方法。另一種選擇是聲明一個指向單例的全局變量,但考慮到單例經常被用作全局變量的奇特替代品,這似乎是一個糟糕的想法。

1

在您.m文件的init方法使用該

[[Game sharedInstance] method];