Где объявлен класс Class / как его переслать? - PullRequest
1 голос
/ 16 февраля 2012

Я не могу скомпилировать мою из-за этой ошибки в моем заголовке:

ошибка: ожидаемый идентификатор [1]

- (void) removeAllEntitiesOfClass: (Class) class;

с кареткой, указывающей на класс нижнего регистра.

Удаление этой функции приводит к повторной компиляции.

Мой класс является подклассом NSObject, в котором есть открытые методы, которые используютClass, поэтому я подумал, что это будет объявлено автоматически.

Я также попытался изменить Class на Class * и объявить пересылку с помощью @Class Class, и это не работает - он говорит, что это переопределение, потому что я меняютип.Очевидно, Class - это указатель типа typedef.Я не уверен, как пересылать объявить это здесь, и я, кажется, напоминаю, что может быть неприятным делом объявить указатель typedef.Пожалуйста, исправьте меня, если я ошибаюсь, и скажите, какой файл импортировать или как переадресовать объявить.

@interface GameState : NSObject {   
...
}
...
-(void) removeAllEntitiesOfClass:(Class)class;   
@end                                             

1 Ответ

2 голосов
/ 16 февраля 2012

Я подозреваю, что ваш заголовок виден в переводе Objective-C ++.В C ++ class является ключевым словом.Чтобы исправить это, измените имя параметра с class на не ключевое слово.

...