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

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

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

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

我对么?

4

3 回答 3

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)

有关更多详细信息,请参阅这篇文章:NSArray 的大小

于 2012-09-03T17:54:29.723 回答
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.

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

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

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

Elements in annotations array: 10

在阅读您的日志时,这可能会更有帮助!

于 2012-09-03T17:55:21.307 回答
1

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

于 2012-09-03T17:54:59.657 回答