2011-04-12 89 views
0

我有一個名爲MyScene的CCLayer的子類。在App代表我添加以下代碼:反射不適用於CCScene,爲什麼?

-(void) applicationDidEnterBackground:(UIApplication*)application { 
    [[CCDirector sharedDirector] stopAnimation]; 

    if([[CCDirector sharedDirector] runningScene] != nil) { 
     if([[[CCDirector sharedDirector] runningScene] isKindOfClass:[MyScene class]]) { 
      MyScene *scene = (MyScene*) [[CCDirector sharedDirector] runningScene]; 
      [scene goingToBackground]; 
    } 
} 

}

的應用程序有一個正在運行的場景,我知道這是MyScene,但isKindOfClass不返回YES。爲什麼?

+0

我已經添加了CCLOG語句,所以我知道applicationDidEnterBackground被調用,我知道runningScene不是零。 – TigerCoding 2011-04-12 09:47:01

回答

1

​​3210總是返回一個CCScene而不是一個CCLayer對象。 當您將CCScene與您的CCLayer子類即MyScene進行比較時,它總是返回false。嘗試設置MyScene對象的標籤,並通過標籤獲取該對象並進行比較。它會返回YES

+0

這是一個很好的做法。謝謝英德。 – TigerCoding 2011-04-12 09:55:43

+0

謝謝。併爲您的課程使用適當的命名。如果你的子類名稱是MyLayer而不是MyScene,它會幫助你... – 2011-04-12 10:50:27

相關問題