7

Xcode に問題があります:

現在、iOS SDK 6.1 用のアプリケーションに取り組んでいます。ある日、私はいくつかのメソッドを実装していて、プロジェクトをコンパイルしようとしました。その後、奇妙なことが起こりました:

コンパイルが失敗し、2 つのファイルにいくつかのエラー (下の図を参照) がありましたが、これは私が取り組んだメソッドとは関係ありません。

コード内のエラーを検索しましたが、何も見つかりませんでした。
それから私はプロジェクトを閉じて、再び開きました: 彼らはまだここにいました.
次に、プロジェクトと Xcode を閉じて、両方を再度開きました。それらはまだここにありました。
次に、新しいプロジェクトを作成し、すべてのコードをコピーしました。問題が再び発生しました。

今、私は立ち往生していて、何をすべきか見当がつきません。コードに何か欠けているものはありますか?

私を助けてください!

---

編集1:

Martin R の提案に従った後にコードが表示されるはずのコード スニペットを次に示します。

//  PlayingCardDeck.h  
@class PlayingCard;  
@interface PlayingCardDeck : NSObject  
- (void) addCard: (PlayingCard *) card atTop: (BOOL) atTop;  
- (PlayingCard *) drawRandomCard;  
- (BOOL) containsCard: (PlayingCard *) card;  
- (BOOL) isCardUsed: (PlayingCard *) card;  
- (void) drawSpecificCard: (PlayingCard *) card;  
- (void) reset;  
@end  

//  PlayingCardDeck.m  
#import "PlayingCardDeck.h"  
@interface PlayingCardDeck()  

//  PlayingCard.h  
#import <Foundation/Foundation.h>  
#import "RobinsConstants.h"  
#import "PlayingCardDeck.h"  
//@class PlayingCardDeck;  
@interface PlayingCard :  NSObject  
+ (NSArray*) suitStrings;  
+ (NSArray*) rankStrings;  
+ (NSUInteger) maxRank;  
- (id)initCardWithRank: (NSUInteger) r andSuit: (NSString*) s;  
- (NSString*) description;  
- (NSUInteger) pokerEvalRankWithDeck: (PlayingCardDeck *) deck;  
- (NSAttributedString *) attributedContents;  
- (BOOL) isEqual:(PlayingCard*)object;  
@property (strong, nonatomic) NSString *contents;  
@property (nonatomic, getter = isUsed) BOOL used;  
@property (nonatomic, readonly) NSInteger rank;
@property (nonatomic, readonly, strong) NSString * suit;  
@end

//  PlayingCard.m  
#import "PlayingCard.h"  
@interface  PlayingCard()

4

3 に答える 3

20

これは、典型的な「インポート サイクル」のように見えます。

 // In PlayingCardDeck.h:
 @import "PlayingCard.h"

 // In PlayingCard.h:
 @import "PlayingCardDeck.h"

@importステートメントの1つをbyに置き換えると@class、問題が解決するはずです。

 // In PlayingCardDeck.h:
 @class PlayingCard; // instead of @import "PlayingCard.h"

実装ファイルでは、完全なインターフェースをインポートする必要があります。

 // In PlayingCardDeck.m:
 #import "PlayingCardDeck.h"  
 #import "PlayingCard.h"    // <-- add this one
于 2013-09-07T13:41:57.263 に答える
0

PlayingCard.h に問題があります。このエラーにより、コンパイラは "PlayingCard *" が何であるかを認識できなくなります。PlayingCard.h のコードを表示できますか?

于 2013-09-07T13:29:08.750 に答える