从数组iphone中检索数据有问题吗?

时间:2010-11-16 09:53:50

标签: iphone objective-c

我声明了一个nsmutablearray并指定了一些对象但是在检索对象时它给出了内存位置。这就是代码。

NSMutableArray *arrCondiNum = [[NSMutableArray alloc] init];
[arrCondiNum addObject:@"2"];
[arrCondiNum addObject:@"4"];
[arrCondiNum addObject:@"6"];
[arrCondiNum addObject:@"8"];
for(int i = 0;i<[arrCondiNum count];i++){
    NSLog(@"Array number %d",[arrCondiNum objectAtIndex:i]);
}

输出它给出了 阵列号20820
数组编号20836
数组编号20852
数组编号20868

4 个答案:

答案 0 :(得分:3)

您在数组中添加字符串,然后要显示它,您必须使用%@:

NSLog(@"Array number %@",[arrCondiNum objectAtIndex:i]);

在代码(%d)中,显示对象的地址。

%@将显示ObjC对象的描述(返回-descriptionWithLocale:-description

答案 1 :(得分:2)

请注意,如果您需要数字数组,请改用NSNumber

[array addObject:[NSNumber numberWithInt:1]];

您仍然必须使用%@格式说明符(因为NSNumber是类型)或使用-intValue检索整数值。

答案 2 :(得分:0)

请尝试使用[[arrCondiNum objectAtIndex:i] floatValue]。 NSArrays保持对象(指向对象的指针更精确),而不是值。因此数组将返回您之前创建的字符串对象。通过发送此对象“floatValue”消息,它将返回其表示为float值的内容。您也可以使用intValue来接收整数。

答案 3 :(得分:0)

就像这样写  NSLog(@&#34;数组编号%@&#34;,[arrCondiNum objectAtIndex:i]); 你必须打印一些文字......所以