«Тип получателя« CCParticleBatchNode »для сообщения класса является предварительным объявлением» - PullRequest
1 голос
/ 01 ноября 2011

Название говорит само за себя. Я установил cocos2d 1.1, загрузив файлы с github, удалив проект 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

Все несущественные части были удалены.

Ответы [ 4 ]

1 голос
/ 02 ноября 2011

У меня была такая же проблема при загрузке новейших шаблонов.Проблема заключалась в том, что, хотя файлы CCParticleBatchNode.h и CCParticleBatchNode.m присутствовали физически, они не были добавлены в шаблон проекта Xcode.Мне просто нужно было добавить их в проект, а затем он скомпилирован.

1 голос
/ 01 ноября 2011

"удаление проекта cocos2d внутри моего проекта и его повторное добавление."

Убедитесь, что файлы являются частью процесса сборки. В XCode 4 щелкните имя проекта в верхней части Навигатора проектов, выберите «Фазы сборки», убедитесь, что под целевым именем отображаются «библиотеки cocos2d». Если это так, разверните «Целевые зависимости» и убедитесь, что он там тоже есть. Затем разверните «Связать двоичные файлы с библиотеками» и убедитесь, что они также добавлены туда.

1 голос
/ 01 ноября 2011

Ну что ж… обычные проблемы с обновлением cocos2d.

Лично я просто установил бы шаблоны cocos2d 1.1 (при условии, что они обновлены) и создал бы проект на основе одного из шаблонов cocos2d. Затем добавьте ваш исходный код и ресурсы в этот недавно созданный проект. Обычно это работает намного лучше, чем пытаться заменить и обновить код cocos2d в существующем проекте.

Я полагаю, что ваша проблема может быть связана с удалением проекта cocos2d, но не с файлов с вашего жесткого диска. Это означает, что все еще могут быть некоторые оставшиеся файлы из старой версии, которые все еще включены в проект и созданы. Вы определенно хотите удалить все существующие файлы cocos2d перед перемещением новых файлов cocos2d на место.

Наконец, не исключайте, что версия, которую вы скачали с github, не работает. Это был бы не первый раз. Вместо этого попробуйте использовать загружаемую версию с веб-сайта и имейте в виду, что 1.1 на данный момент является только бета-версией.

Совет: в будущем вы можете захотеть создавать проекты cocos2d с Kobold2D , у него есть инструмент обновления , который устраняет все эти проблемы.

1 голос
/ 01 ноября 2011

Нет необходимости импортировать файл cocos2d.h в ваш файл .m, если вы импортировали его в свой файл .h. Я не думаю, что это проблема, хотя.

Есть две возможности:

  • CCParticleBatchNode определен в cocos2d.h, в этом случае вам не нужно предварительное объявление, и это может сбить с толку компилятор.
  • CCParticleBatchNode не определен в cocos2d.h, и в этом случае вам необходимо импортировать CCParticleBatchNode.h в файл реализации, поскольку все, что у вас есть, - это предварительное объявление.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...