2011-12-05 121 views
0
//In class2.m File, 

HelloWorldLayer myHelloWorldLayer = [[HelloWorldLayer alloc]init]; 
myHelloWorldLayer.myInt =100; 
     NSLog(@"%i",myHelloWorldLayer.myInt); 

//In HelloWorldLayer.h 
int _myInt; 
@property (nonatomic,readwrite) int myInt; 


//In HelloWorldLayer.m 
@synthesize myInt= _myInt; 

NSLog(@"%i",self.myInt); 

當我運行的HelloWorld層,輸出爲0。我改變了現場的Class2文件,並更改敏到100,輸出是100但是,當我更換現場回HelloWorldLayer輸出爲0再次而不是100.請幫助,謝謝。訪問變量

+0

你能更清楚一點嗎?你需要改變一個類的一個實例的值嗎,還是你希望那個類的所有實例的值都相同? –

+0

我想將HelloWorldLayer中的myInt更改爲100. – user1050548

+0

我理解這一部分。我不明白的是,如果你想讓它成爲你製作的所有圖層,或者只是你製作的圖層中的一個, –

回答

2
// in HelloWorldLayer.h 
// these are static variables. 
// You would reference them like so: 
// HelloWorldLayerStatic.myInt = x; 
static struct { 
    int myInt; 
} HelloWorldLayerStatic; 

然後,當你要提到self.myIntmyLayer.myInt,你會參考HelloWorldLayerStatic.myInt。這有點破解,但有效。

+0

我可以知道我的代碼有什麼問題嗎?謝謝。我搜索了很多答案,這種方法應該可行。 – user1050548

+0

你的代碼沒有什麼問題,但是當你每次使用新場景使用replaceScene時,你會創建一個新的場景實例,從而替換實例變量,將'myInt'清除回0. –

+0

另外,請如果可以的話,確定投票並接受答案。 –