在Google搜索TDD原则时,我遇到了此演示文稿
http://qualitycoding.org/files/BowlingGame-ObjectiveC.pdf
我不熟悉它。有一个这样的声明:
NSUInteger _rolls[21];
NSUInteger _currentRoll;
从代码中我发现_rolls是一个包含几个uint的数组。但我从未见过这个。这是C的一部分吗?
我会更熟悉
NSArray *rolls;
NSUInteger aRoll = rolls[index];
[21]是否描述了该数组的计数或最大限制?
答案 0 :(得分:2)
NSUInteger _rolls[21];
声明了NSUInteger
类型的C数组,其大小为21,而不是NSArray
。
考虑如何在C中声明一个数组:
type arrayName [ arraySize ];
使用整数:
int rolls[5] = {1, 2, 3, 4, 5};
它的工作方式相同。
括号中的数字是数组的大小,它可以容纳的最大值。
答案 1 :(得分:0)
实际上,NSArray
不能包含NSUInteger
,您只能将对象放在Objective-C数组中。
如果您想将NSUInteger
存储在一个数组中,您必须先将它们包装起来:
NSArray *rolls = [NSArray arrayWithObject: @(17)];
NSUInteger aRoll = rolls[0].unsignedIntegerValue;
或者,你可以使用像你在PDF中看到的那样的C数组......