我对Xcode有问题:
目前,我正在为iOS SDK 6.1开发应用程序。前几天,我正在实现一些方法,并尝试编译该项目。
然后发生了一些奇怪的事情:
编译失败,我在两个文件中遇到了一些错误(请参见下图),这些错误与我使用的方法无关。
我在代码中搜索了错误,但找不到任何错误。
然后我关闭了该项目并再次打开它:他们仍然在这里。
然后,我关闭了该项目,并关闭了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()
最佳答案
看起来像一个典型的“导入周期”:
// In PlayingCardDeck.h:
@import "PlayingCard.h"
// In PlayingCard.h:
@import "PlayingCardDeck.h"
用
@import
替换@class
语句之一应该可以解决此问题,例如 // In PlayingCardDeck.h:
@class PlayingCard; // instead of @import "PlayingCard.h"
在实现文件中,您必须导入完整的接口(interface):
// In PlayingCardDeck.m:
#import "PlayingCardDeck.h"
#import "PlayingCard.h" // <-- add this one