Что происходит с ошибкой «ожидаемый список спецификаторов» - PullRequest
2 голосов
/ 11 апреля 2010

Это мой GameEngine.h:

#import <Foundation/Foundation.h>
#import "GameArray.h";


@interface GameEngine : NSObject {
    GameArray *gameButtonsArray;
}

@property (nonatomic, retain) GameArray *gameButtonsArray;

А это мой GameArray.h:

#import <Foundation/Foundation.h>
#import "MyAppDelegate.h";

@interface GameArray : NSObject {
    NSMutableArray *gameButtonsArray;

}
@property (nonatomic, retain) NSMutableArray *gameButtonsArray;

Появляется подсказка моей «ожидаемого списка спецификаторов-определителей» в моем GameEngine.h, а в сообщении об ошибке говорится, что «ожидаемый список спецификаторов-определителей перед GameArray», что происходит?

Ответы [ 3 ]

4 голосов
/ 11 апреля 2010

Это лучшая практика.

GameEngine.h

#import <Foundation/Foundation.h>

@class GameArray;

@interface GameEngine : NSObject {
    GameArray *gameButtonsArray;
}

@property (nonatomic, retain) GameArray *gameButtonsArray;

Тогда в GameEngine.m

#import "GameEngine.h"
#import "GameArray.h"

@implementation GameEngine    
//...
@end

Это предотвращает циклические ссылки, когда один заголовок импортирует второй заголовок, который импортирует первый, который импортирует второй и так далее в бесконечном цикле.

2 голосов
/ 11 апреля 2010

Удалите точку с запятой в строке 2 в вашем .h файле

0 голосов
/ 11 апреля 2010

Если удаление ненужных точек с запятой не решит вашу проблему, скорее всего MyAppDelegate.h импорт GameEngine.h , создающий круговую зависимость между GameEngine.h и GameArray.h . Попробуйте удалить #import "GameArray.h" из GameEngine.h и заменить его на:

@class GameArray;

Также добавить

#import "GameArray.h"

до GameEngine.m ниже импорта GameEngine.h

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...