我在调试器中看到了NSNumber
的值:
(lldb)po avg
377.57142857142857142857142857142857142
当我问它的intValue
时,我得到377.很好。但如果我问它longLongValue
我得到0。
是什么给出了?
更新:完整的情况是我有一系列NSNumber对象,而且我的平均值是这样的:
NSMutableArray *myNums = nil; //assume this is full of numbers
NSNumber *avg = [myNums valueForKeyPath:@"@avg.self"];
int64_t result = avg.longLongValue; //this gets 0
我已在调试器中停在此处,我可以p [avg longLongValue]
并获得0. p [avg intValue]
获得377。
更新2:这是一个可靠的复制品:
NSArray *testArr = @[@(392), @(392), @(339), @(394), @(393), @(394), @(339)];
NSNumber *testAvg = [testArr valueForKeyPath:@"@avg.self"];
int64_t testRes = testAvg.longLongValue;
NSLog(@"Result is %lli", testRes);
int res2 = testAvg.intValue;
NSLog(@"Int result is %i", res2);
结果日志是:
结果为0
Int结果是377