我正在尝试遵循Stanford CS193p类(class),但遇到了我无法解决的客观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
我是 objective-c 的新手,也不知道是什么导致了此问题。还是为什么相同的代码只能对一个人而不对我有用。任何帮助表示赞赏。
最佳答案
我看不到任何代码问题。
您可以尝试清理构建并重新构建。