2012-01-26 28 views
0

希望任何人都可以幫助我。 我想弄清楚在一個方法的調用中傳遞一個對象的指針是什麼。如何檢查傳遞給方法的指針?

所以(在cocos2d的環境),這將是這樣的:

- (void)loadCreature:(CCSprite*)creature 
{ 
    if (/*here I want to check if the pointer is 'blue'*/) NSLog(@"the creature is blue") 
    if (/*here I want to check if the pointer is 'red'*/) NSLog(@"the creature is red") 
} 

和實現:

CCSprite *blue; 
CCSprite *red; 

[self loadCreature:blue]; 
[self loadCreature:red]; 

在此先感謝:)

  • Yurki

回答

0

除非藍色和紅色物體內部有一些信息可以區分它們,例如:

[藍色setDistingusingInformation:@「This is blue」];

[red setDistingusingInformation:@「This is red」];

而且調用loadCreature之前被設置,那麼就不會有任何方式告訴其CCSprite對象傳遞給它的loadCreature方法內。

唯一的選擇是將紅色和藍色聲明爲全局變量,並在loadCreature內部對它們的指針進行比較以確定哪個是哪個指針。但是這樣做是錯誤的,如果我發現你這樣做,我會非常生氣:D

+0

哈哈,我不喜歡你生氣,所以我不會這樣做。但我認爲你指出了我的正確方向。似乎有一個CCSprite的標籤屬性,但這不起作用:blue.tag = 1; NSLog(@「blue.tag =%d」,blue.tag);不知道爲什麼...... – yurki

+0

啊,我現在明白了爲什麼現在......當CCSprite沒有初始化時,你還不能設置標籤。太糟糕了,因爲我需要在方法內初始化。解決方法是先用一個空白的圖片文件初始化精靈,然後設置標籤,然後在方法內部用新圖片重新初始化。一點都不漂亮!但它工作... – yurki