Объявление классов - PullRequest
2 голосов
/ 20 июня 2011

Я обновился до нового Xcode 4.2 (для iOS 5), но теперь мой проект больше не собирается с ошибкой: «Категория» объявлена ​​как другой символ ».Кроме того, существует множество ошибок, связанных с тем, что «Запрос на имя члена» не является структурой или объединением, а такие предупреждения, как «Недопустимый тип получателя« Категория »».

Я предполагаю, что это связано с тем, как ямои декларации.Что касается этого класса (базовых данных), у меня есть следующее объявление:

#import <CoreData/CoreData.h>

@class Article;
@interface Category :  NSManagedObject  
{
}

@property (nonatomic, retain) NSNumber * id;
@property (nonatomic, retain) NSString * name;
@property (nonatomic, retain) NSString * desc;
@property (nonatomic, retain) NSDate * lastUpdate;
@property (nonatomic, retain) NSSet* articles;   
@end

@interface Category (CoreDataGeneratedAccessors)
- (void)addArticlesObject:(Article *)value;
- (void)removeArticlesObject:(Article *)value;
- (void)addArticles:(NSSet *)value;
- (void)removeArticles:(NSSet *)value;

@end

-

#import "Category.h"

@implementation Category 

@dynamic id;
@dynamic name;
@dynamic desc;
@dynamic lastUpdate;
@dynamic articles;

@end

-

В другом классе базовых данных, который имеетотношение: n я использую "@class Category;"объявить.В классе, где я использую этот класс, я импортирую файл заголовка: #import "Category.h".

Как это лучше всего сделать, или какая дополнительная информация необходима для поиска проблемы.Я испробовал все виды различных комбинаций, но теперь не совсем понимаю, когда и как объявлять.(код работал нормально при последней сборке)

1 Ответ

2 голосов
/ 20 июня 2011

Ваш код, вероятно, видит объявление вещей из objc/runtime.h:

typedef struct objc_category *Category;

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

...