"没有已知的选择器类方法' validSuits'" xCode 5.1出错

时间:2014-03-26 11:47:23

标签: ios objective-c compiler-errors

我正在尝试遵循斯坦福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的新手,不知道导致这个问题的原因。或者为什么相同的代码可以适用于一个人而不适合我。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

我看不出任何代码问题。

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