簡體   English   中英

'接收器類型“CCParticleBatchNode”用於類消息是前向聲明'

[英]'Receiver type “CCParticleBatchNode” for class message is a forward declaration'

標題不言而喻。 我通過從github下載文件來安裝cocos2d 1.1,刪除項目中的cocos2d項目並重新添加它。

我的頭文件中有一個'@class CCParticleBatchNode',而我的前綴和相關的實現文件中都有#import“cocos2d.h”。 當我瀏覽CCParticleBatchNode所應的位置時,它就在那里。

那么,有人知道問題可能是什么嗎? :)

編輯:這是一些代碼。

#import "PrecipicationLayer.h"
#import "cocos2d.h"

@implementation PrecipicationLayer
@synthesize cloudLayer;
- (id)init
{
    self = [super init];
    if (self)
    {
        rain = [CCParticleRain node];
        rainBatch = [CCParticleBatchNode particleBatchNodeWithFile:@"Raindrop48px.png" capacity:400 useQuad:YES additiveBlending:NO];
        [self addChild:rainBatch];

        [self schedule:@selector(tick:)];
    }
return self;
}

和頭文件:

#import <Foundation/Foundation.h>
#import "cocos2d.h"
@class CCParticleBatchNode;

@interface PrecipicationLayer : CCLayer {
    CCParticleBatchNode *rainBatch;
}

@end

所有不相關的部分都已刪除。

如果已在.h文件中導入cocos2d.h,則無需在.m文件中導入cocos2d.h。 不過,我認為這不是問題所在。

有兩種可能性:

  • CCParticleBatchNode在cocos2d.h中定義,在這種情況下,您不需要前向聲明,這可能會使編譯器感到困惑。
  • CCParticleBatchNode 在cocos2d.h中定義,在這種情況下,您需要在實現文件中導入CCParticleBatchNode.h,因為您所擁有的只是前向聲明。

“刪除項目中的cocos2d項目並重新添加它。”

檢查文件是否為構建過程的一部分。 在XCode 4中,單擊Project Navigator頂部的項目名稱,選擇“Build Phases”,確保“cocos2d libraries”顯示在目標名稱下。 如果是,則展開“Target Dependencies”,並確保它也列在那里。 然后展開“使用庫鏈接二進制文件”並確保它也在那里添加。

哦好......通常的cocos2d升級麻煩。

就個人而言,我只需安裝cocos2d 1.1模板(假設它們是最新的)並根據其中一個cocos2d模板創建一個項目。 然后將源代碼和資源添加到此新創建的項目中。 這通常比嘗試替換和更新現有項目中的cocos2d代碼要好得多。

我想你的問題可能來自刪除cocos2d項目而不是硬盤中的文件。 這意味着仍然可以從舊版本中獲得一些仍然包含在項目中並構建的剩余文件。 您肯定希望在移動新的cocos2d文件之前刪除所有現有的cocos2d文件。

最后,不排除從github下載的版本被破壞的可能性。 這不是第一次。 請嘗試使用網站上的可下載版本,並記住1.1此時只是一個測試版。

提示:將來你可能想用Kobold2D創建cocos2d項目,它有一個升級工具可以解決所有這些麻煩。

下載最新模板時遇到同樣的問題。 問題是即使文件CCParticleBatchNode.h和CCParticleBatchNode.m在物理上存在,它們也沒有被添加到Xcode項目模板中。 我只需將它們添加到項目中然后編譯。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM