我更新到新的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”。
执行此操作的最佳方式是什么,或者需要更多信息才能找到问题。我已经尝试了各种不同的组合,但现在很困惑,何时以及如何申报。 (上次构建时代码工作正常)
答案 0 :(得分:2)
您的代码可能正在查看来自objc/runtime.h
的声明:
typedef struct objc_category *Category;
按照惯例,Cocoa类以两个或三个字母的前缀命名,表示发起人,组织或项目。这有助于避免此类问题。