1
스탠포드 CS193p 과정을 따라 가고 있지만 해결할 수없는 객관적인 C 오류가 발생합니다."셀렉터 'validSuits'에 대한 알려진 클래스 메소드가 없습니다. xCode 5.1의 오류입니다.
"[PlayingCard validSuits]"가 포함 된 행의 PlayingCardDeck.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
다음
#import "Deck.h"
@interface PlayingCardDeck : Deck
@end
가 PlayingCard.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 파일입니다 ob에 처음 온 이 문제를 일으키는 원인이 무엇인지 알지 못한다. 또는 동일한 코드가 왜 나를위한 것이 아니라 한 사람을 위해 일할 수 있는지. 어떤 도움을 주셔서 감사합니다.