宣布课程

时间:2011-06-20 11:28:41

标签: objective-c cocoa-touch cocoa build compiler-errors

我更新到新的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:n关系的Core Data类中,我使用“@class Category;”声明。 在我使用这个类的类中,我导入头文件:#import“Category.h”。

执行此操作的最佳方式是什么,或者需要更多信息才能找到问题。我已经尝试了各种不同的组合,但现在很困惑,何时以及如何申报。 (上次构建时代码工作正常)

1 个答案:

答案 0 :(得分:2)

您的代码可能正在查看来自objc/runtime.h的声明:

typedef struct objc_category *Category;

按照惯例,Cocoa类以两个或三个字母的前缀命名,表示发起人,组织或项目。这有助于避免此类问题。