代码之家  ›  专栏  ›  技术社区  ›  Viral Narshana

从array iphone检索数据时出现问题?

  •  1
  • Viral Narshana  · 技术社区  · 15 年前

    我声明了一个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 回复  |  直到 15 年前
        1
  •  3
  •   Benoît    15 年前

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

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

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

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

        2
  •  2
  •   Georg Fritzsche    15 年前

    注意,如果您想要 数字 ,使用 NSNumber 相反:

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

    你还是要用 %@ 但格式说明符(如 数字对象 是类类型)或使用 -intValue .

        3
  •  0
  •   Toastor    15 年前

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

        4
  •  0
  •   success    14 年前

    就这样写。。 NSLog(@“Array number%@”,[arrCondiNum objectAtIndex:i]); 你必须打印一些文本