【发布时间】:2014-07-21 22:07:20
【问题描述】:
你好,我当然不懂 CS193p 这段代码
[[PlayingCard rankStrings][self.rank] stringByAppendingString:self.suit];
其中 rankString 是可变方法
+ (NSArray *)rankStrings
{
return @[@"?", @"A", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"10", @"J", @"Q", @"K"];
}
self.rank 是一个随机数的getter
@property (nonatomic) NSUInteger rank;
和 self.suit 在另一个变量方法中
+ (NSArray *)validSuits
{
return @[@"♥️", @"♦️", @"♠️", @"♣️"];
}
我在我的代码中插入 NSLog 以了解其功能 .... 我知道它从 rankStrings 中获取排名并将它们与西装连接起来 .... 但我不明白如何! appendingString 的方法很清楚……但是如何从 rankStrings 中获取值 rank? [PlayingCard rankStrings] 是对变量方法的简单调用,而 NSUInteger rank 是一个 getter
【问题讨论】:
-
你是对的——这令人困惑,因为
[]有点“过载”。[self.rank]实际上是对方法调用[PlayingCard rankStrings]返回的数组的索引操作。 -
当然,这里的
.用于暗示对rank的“getter”的方法调用,而不是对self标识的结构中的字段的引用。普通 C/C++ 就是这种情况。
标签: objective-c object syntax brackets cs193p