【发布时间】:2014-03-26 11:47:22
【问题描述】:
我正在尝试学习斯坦福 CS193p 课程,但我遇到了一个客观的 C 错误,我无法解决。
我在下面的 PlayingCardDeck.m 文件中遇到错误,该文件包含“[PlayingCard validSuits]”。
#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 的新手,不知道是什么导致了这个问题。或者为什么相同的代码可以为一个人工作而不是我。任何帮助表示赞赏。
【问题讨论】:
标签: ios objective-c compiler-errors