无法理解这个退货声明

时间:2015-02-26 12:29:46

标签: ios xcode

我正在关注手势识别的教程,它包括制作扑克牌等。我有一个名为“rank”的属性,类型为NSUInteger,所以这个人做了一个函数将等级作为字符串返回,函数看起来像这个:

- (NSString *) rankAsString {
return @[@"A",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"J",@"Q",@"K"][self.rank];

}

我真的不明白发生了什么,我从来没有见过一个数组后跟一个吸气剂。

1 个答案:

答案 0 :(得分:1)

return @[@"A",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"J",@"Q",@"K"][self.rank];

相当于:

NSArray *array = [NSArray arrayWithObjects:@"A",@"2",@"3",@"4",@"5",@"6",@"7",@"8",@"9",@"10",@"J",@"Q",@"K", nil];
return [array objectAtIndex:self.rank];

您发布的这一行使用了新的(好的......现在不是那么新的)客观C文字。 @[ ... ]创建一个NSArray对象。 您可以使用方括号直接访问NSArray对象:例如array[0]