将Array Obj-c的内容转储到控制台

时间:2010-11-01 16:57:27

标签: iphone printing nsmutablearray

我查找了如何转储和数组到我最常找到的控制台:

for (id name in arrayStuff)
    NSLog (@"Array contents:  %d", name);

我已经尝试了不同的格式化程序%d%@%g等打印不同的东西,但不是我99%肯定会输入到对象中的值,因此也就是数组。这似乎不起作用,你怎么知道什么用作形成器?

我有一个NSMutableArray,其中一个对象的实例包含一个int,并且在每个循环中添加了两个双精度数组。我想打印出这些值,并确保正确的值。有任何想法吗?

由于

3 个答案:

答案 0 :(得分:3)

您的格式说明符错误。 NSArrays包含对象,而不是int,因此您必须使用Objective-C对象%@的说明符:

for (id name in arrayStuff)
    NSLog(@"Array element: %@", name);

或者只是:

NSLog(@"Array contents: %@", arrayStuff);

答案 1 :(得分:1)

您希望使用“%@”格式说明符来打印对象。

要显示对象的内容(int& double),您需要在对象中实现-description方法。

请参阅What is the Objective-C equivalent for "toString()", for use with NSLog?

答案 2 :(得分:1)

如果您创建了一个Object类型来保存值,那么在for循环中使用该对象类型,然后使用getter访问对象:

for (ObjectName name in arrayStuff) {
    NSLog(@"Array int: %d", name.myIntValue);
    NSLog(@"Array double: %f ...
}