我遇到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()
答案 0 :(得分:20)
这看起来像是典型的“导入周期”:
// In PlayingCardDeck.h:
@import "PlayingCard.h"
// In PlayingCard.h:
@import "PlayingCardDeck.h"
用@import
替换其中一个@class
语句可以解决问题,例如
// In PlayingCardDeck.h:
@class PlayingCard; // instead of @import "PlayingCard.h"
在实现文件中,您必须导入完整的界面:
// In PlayingCardDeck.m:
#import "PlayingCardDeck.h"
#import "PlayingCard.h" // <-- add this one
答案 1 :(得分:0)
PlayingCard.h中有问题。此错误导致编译器不知道“PlayingCard *”是什么。 你能展示一下来自PlayingCard.h的代码吗?
答案 2 :(得分:0)
确保将PlayingCard.m添加到您的应用程序目标中!我认为不是(单击.m文件并在右侧窗格的检查器窗口中检查您的应用目标)