objective c:方法返回一个int数组

时间:2014-04-16 08:10:15

标签: objective-c arrays

我正在尝试创建一个返回int数组的方法,但是我遇到了一些问题。

-(NSMutableArray *) PHSAPP:(float) tax
{
    ////code to calculate values


    if (Dlimloss50==0)  Dlimloss50=duration;

    if (Dlimloss95==0)  Dlimloss95=duration;

    if (DlimTre==0)   DlimTre=duration;

    NSLog(@"%d --- %d-----%d", Dlimloss50,Dlimloss95,DlimTre);

    NSNumber *uno=[NSNumber numberWithInt:Dlimloss50];
    NSNumber *due=[NSNumber numberWithInt:Dlimloss95];
    NSNumber *tre=[NSNumber numberWithInt:DlimTre];

    //// here values are changed    

    NSLog(@"%d --- %d-----%d", uno ,due ,tre);

    NSMutableArray *PHSAPP = [NSMutableArray arrayWithCapacity:3 ];

    [PHSAPP addObject:[NSNumber numberWithInt:Dlimloss50]];
    [PHSAPP addObject:[NSNumber numberWithInt:Dlimloss95]];
    [PHSAPP addObject:[NSNumber numberWithInt:DlimTre]];

    return PHSAPP;
}

第一个NSLog中的值与第二个NSLog中的值不同,因此数组中填充了错误的值。 为什么呢?

2 个答案:

答案 0 :(得分:2)

您无法使用%d格式化程序打印NSNumber值。请改用%@。

更改

NSLog(@"%d --- %d-----%d", uno ,due ,tre);

NSLog(@"%@ --- %@-----%@", uno ,due ,tre);

答案 1 :(得分:0)

您可以打印整数值:

NSNumber *uno = @10;
NSLog(@"%i", uno.intValue);