0

Restkitでマッピングしようとしていますが、以下のように2つのクラスを作成しました。次のエラーが発生しました。

  • Campaign.h不明なタイプ名「カード」
  • Card.h不明なタイプ名「キャンペーン」
  • 'retain(またはstrong)'属性を持つプロパティは、オブジェクトタイプである必要があります
  • ...詳細ですが同様のエラー

私の質問は、クラスを再利用することによって、以下のクラス宣言を実現する方法があるということです。

Campaign.h

#import "Card.h"

@interface Campaign : NSObject

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

@end

Card.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

誰かが将来それを必要とする場合に備えて。ここに私の解決策:

Campaign.h

@class Card;

@interface Campaign : NSManagedObject

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

@end

Campaign.m

#import "Card.h"

@implementation Campaign

...

@end

Card.h

@class Campaign;

@interface Card : NSManagedObject

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

@end

Card.m

#import "Campaign.h"

@implementation Card

...

@end
于 2012-04-30T13:29:48.313 に答える