2014-03-26 3 views
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에 처음 온 이 문제를 일으키는 원인이 무엇인지 알지 못한다. 또는 동일한 코드가 왜 나를위한 것이 아니라 한 사람을 위해 일할 수 있는지. 어떤 도움을 주셔서 감사합니다.

답변

0

코드의 문제는 볼 수 없습니다.

빌드를 정리하고 다시 빌드 할 수 있습니다.

관련 문제