2012-09-03 72 views
3
NSLog(@"%d",[annotations count]); 

上述代码与名为'annotations'的NSMutableArray一起使用。显示的NSLog数组计数代码是做什么的?

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

我知道NSLog输出文字,其说法注解计数..所以我认为它输出注释数组中的元素数量。

我正确吗?

+0

在Xcode中,Option +点击count并阅读弹出的内容。 –

+0

@MatthiasBauch Mac上的选项是什么? CMD? ALT? – Simagen

+0

难道他们不再用“选项”来标记它们吗?应该是'alt'。 –

回答

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 

读回来的时候可能会更有帮助通过你的日志!

+0

感谢您的帮助! – Simagen

+0

在你的第一个例子中,你期待一个字符串对象,但提供一个C风格的字符数组(c-string)。通过在AT符号前加上Sarah字符串来修复这个问题。 – Till

+0

@Till Meep,对不起!感谢您收到错字! – WendiKidd