我正在尝试创建一个返回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中的值不同,因此数组中填充了错误的值。 为什么呢?
答案 0 :(得分:2)
您无法使用%d格式化程序打印NSNumber值。请改用%@。
更改
NSLog(@"%d --- %d-----%d", uno ,due ,tre);
到
NSLog(@"%@ --- %@-----%@", uno ,due ,tre);
答案 1 :(得分:0)
您可以打印整数值:
NSNumber *uno = @10;
NSLog(@"%i", uno.intValue);