我正在尝试遵循斯坦福CS193p课程,但我得到了一个我无法解决的客观C错误。
我在包含“[PlayingCard validSuits]”的行的下面PlayingCardDeck.m
文件中收到错误。
#import "PlayingCard.h"
#import "PlayingCardDeck.h"
@implementation PlayingCardDeck
- (instancetype)init {
self = [super init];
if (self){
for (NSString *suit2 in [PlayingCard validSuits]) { //Error on this line
}
}
return self;
}
@end
这是PlayingCardDeck.h文件:
#import "Deck.h"
@interface PlayingCardDeck : Deck
@end
以下是PlayingCard.m
文件:
#import "PlayingCard.h"
@implementation PlayingCard
- (NSString *)contents {
NSArray *rankStrings = [PlayingCard rankStrings];
return [rankStrings[self.rank] stringByAppendingString:self.suit];
}
+ (NSArray *)validSuits {
return @[@"♣︎", @"♠︎", @"♥︎", @"♦︎"];
}
@synthesize suit = _suit;
- (void)setSuit:(NSString *)suit {
if ([[PlayingCard validSuits] containsObject:suit]) {
_suit = suit;
}
}
- (NSString *)suit {
return _suit ? _suit : @"?";
}
+ (NSArray *)rankStrings {
return @[@"?", @"A", @"2", @"3", @"4", @"5",
@"6", @"7", @"8", @"9", @"10", @"J",
@"Q", @"K"];
}
+ (NSUInteger)maxRank {
return [[self rankStrings] count] - 1;
}
- (void)setRank:(NSUInteger)rank {
if (rank <= [PlayingCard maxRank]) {
_rank = rank;
}
}
@end
PlayingCard.h
文件:
#import "Card.h"
@interface PlayingCard : Card
@property (strong, nonatomic) NSString *suit;
@property (nonatomic) NSUInteger rank;
+ (NSArray *)validSuits;
+ (NSUInteger)maxRank;
@end
我是目标C的新手,不知道导致这个问题的原因。或者为什么相同的代码可以适用于一个人而不适合我。任何帮助表示赞赏。
答案 0 :(得分:0)
我看不出任何代码问题。
您可以尝试清理构建并重新构建它。