显示的NSLog数组计数代码有什么作用?

时间:2012-09-03 17:53:03

标签: iphone ios xcode nslog

NSLog(@"%d",[annotations count]);

上面的代码与名为“annotations”的NSMutableArray一起使用。

我的问题是......这段代码究竟做了什么?

我知道NSLog输出文本,并且它的说法注释计数..所以我认为它会输出注释数组中的元素数量。

我说错了吗?

3 个答案:

答案 0 :(得分:3)

你可以运行代码来测试它,但是这个命令输出到NSLog名为“annotations”的数组的计数。例如,如果数组包含对象和索引0,1,2,3和4,则数组的计数将为5。

NSArray * array = [NSArray arrayWithObjects:@"zero", @"one", @"two", @"three", @"four", nil];
NSLog(@"Number of items in my array is: %d", [array count]);//this will return (5)

有关详细信息,请参阅此帖子:Size of an NSArray

答案 1 :(得分:2)

是的,你的确是正确的。 NSLog将文本打印到控制台窗口,数组的count函数输出该数组中的元素数。

NSLog以特殊方式打印文本;只要有%i%d%f%@等,它就会用传递的变量替换该符号。所以,如果我输入:

NSLog(@"Hi my name is %@. I am %i years old.", @"Sarah", 12);

控制台会打印:

Hi, my name is Sarah.  I am 12 years old.

因此,在您的示例中,如果注释具有10个元素,则10将仅打印到控制台。如果您只是打印一堆数字,这会让人感到困惑!因此,使用NSLog的灵活性,如果您这样做,将更容易读取您的日志输出:

NSLog(@"Elements in annotations array: %d", [annotations count]);

然后将打印到您的控制台:

Elements in annotations array: 10

在阅读日志时可能会更有帮助!

答案 2 :(得分:1)

是的,它只会显示数组中对象的数量