【发布时间】:2010-01-22 23:03:16
【问题描述】:
我想得到一个 NSNumber 的 unsigned long 值。我不知道为什么,但它不起作用。这是我所做的:
NSString * stern = [idd objectAtIndex:indexPath.row]; // get a String with Number from a NSArray
NSNumberFormatter * lols = [[NSNumberFormatter alloc] init];
NSNumber * iddd = [lols numberFromString:stern];
NSLog(@"%@", iddd); // I get the right number: 8084143463
unsigned long fooo = [iddd unsignedLongValue];
NSLog(@"%lu", fooo); // I get the wrong number: 3789176167
[twitterEngine deleteUpdate:fooo];
【问题讨论】:
-
调试器中的值是什么样的?它们和打印的一样吗?
-
对于它的价值,在 10.6.2 上,我两次都得到 8084143463,并且调试器值是一致的。我建议将您的第一行替换为
NSString * stern = @"8084143463";并重命名变量以使其对不经意的观察者有意义。 -
是的,NSNumber 是 8084143463 和 unsigned long 3789176167
-
奇怪,我试过 numberFromString:@"12345" 然后 fooo 得到正确的值。但我想要船尾字符串中的数字。
标签: iphone objective-c xcode