0

我正在尝试使用 Restkit 进行映射并创建了 2 个类,如下所示。我收到以下错误:

  • Campaign.h中的未知类型名称“卡”
  • Card.h中的未知类型名称“Campaign”
  • 具有“保留(或强)”属性的属性必须是对象类型
  • ...更多但类似的错误

我的问题是有没有办法通过重用类来实现下面的类声明。

运动.h

#import "Card.h"

@interface Campaign : NSObject

@property (nonatomic, strong) NSNumber* campaignId;
@property (nonatomic, strong) NSString* title;
@property (nonatomic, strong) Card* card;

@end

卡片.h

#import "Campaign.h"

@interface Card : NSObject

@property (nonatomic, strong) NSNumber* cardId;
@property (nonatomic, strong) NSString* name;
@property (nonatomic, strong) Campaign* campaign;

@end
4

2 回答 2

2

通常,在标头中,您使用前向类声明,以避免导入冲突。所以在Campaign.h, 在你的界面之前, 你会有@class Card, 在Card.h, 你会有@class Campaign. 这只是告诉编译器这些类存在并且在其他地方定义;这通常是您在标题中需要知道的全部内容。

于 2012-04-29T14:59:50.587 回答
1

以防万一将来有人需要它。这是我的解决方案:

运动.h

@class Card;

@interface Campaign : NSManagedObject

@property (nonatomic, strong) NSNumber* campaignId;
@property (nonatomic, strong) NSString* title;
@property (nonatomic, strong) Card* card;

@end

运动.m

#import "Card.h"

@implementation Campaign

...

@end

卡片.h

@class Campaign;

@interface Card : NSManagedObject

@property (nonatomic, strong) NSNumber* cardId;
@property (nonatomic, strong) NSString* name;
@property (nonatomic, strong) Campaign* campaign;

@end

卡.m

#import "Campaign.h"

@implementation Card

...

@end
于 2012-04-30T13:29:48.313 回答