我正在从斯坦福大学网站上完成Matchismo任务。
到目前为止,我完全按照原样跟踪幻灯片。
此外,此错误仅在我实现最后一个方法(即getter)时显示。如果我删除了吸气剂,那就没问题。
可以从这里下载说明:Stanford Course Website
由于
代码:
.m文件:
#import "playingCard.h"
@implementation playingCard
-(NSString *) contents
{
NSArray *rankStrings = @[@"?",@"A",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"J",@"Q",@"K"];
return [rankStrings[self.rank] stringByAppendingString:self.suit];
}
-(void) setSuit:(NSString *) suit
{
if([@[@"♣︎",@"♥︎",@"♦︎",@"♠︎"] containsObject:suit])
{
_suit = suit;
}
}
- (NSString *)isSuit
{
return _suit ? _suit : @"?";
}
@end
.h文件:
#import "card.h"
@interface playingCard : card
@property(strong, nonatomic, getter=isSuit) NSString *suit;
@property(nonatomic) NSUInteger rank;
@end
答案 0 :(得分:9)
添加一行就可以了!
@synthesize suit = _suit;
答案 1 :(得分:-1)
ALT,时刻......你错了什么。
您设置了@property
,因此suit
自动合成为_suit
。
然后,你的getter isSuit
在逻辑上是错误的。我的意思是isSomething
用于接收BOOL
并且具有" 更具可读性"吸气。在这种情况下,您不需要更改getter的名称,并且可以使用以下内容声明属性:
@property(strong, nonatomic) NSString *suit;
此时你不需要合成任何东西,因为你的var已经自动化了,你的getter方法可以简单:
- (NSString *)suit
{
return _suit ? _suit : @"?";
}
了解自己在做什么非常重要。
享受!