我声明了一个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
答案 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]); 你必须打印一些文字......所以