我正在尝试遵循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 的新手,也不知道是什么导致了此问题。还是为什么相同的代码只能对一个人而不对我有用。任何帮助表示赞赏。

最佳答案

我看不到任何代码问题。

您可以尝试清理构建并重新构建。

10-07 18:34