【发布时间】:2011-10-08 16:01:44
【问题描述】:
由于某种原因,当我将此 NSString 转换为整数时,我得到一个完全随机(但一致)的数字。
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// do something with the data
// receivedData is declared as a method instance elsewhere
NSLog(@"Succeeded! Received %d bytes of data",[receivedData length]);
// release the connection, and the data object
[connection release];
debtString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
NSLog(@"String form: %@", debtString);
[receivedData release];
int debtInt = [debtString intValue];
NSLog(@"Integer form: %i", debtInt);
}
这是我的控制台输出:
2011-07-19 11:43:18.319 National Debt[50675:207] Succeeded! Received 14 bytes of data
2011-07-19 11:43:18.320 National Debt[50675:207] String form: 14342943000000
2011-07-19 11:43:18.320 National Debt[50675:207] Integer form: 2147483647
如果我在NSLog(@"Integer form: %i", debtInt); 行上设置断点,并将鼠标悬停在上行中的debtString 值上,则摘要无效。我能想到的唯一原因是我在转换之前释放了debtString,但这显然不是真的。
【问题讨论】:
-
有没有可能我们的国债已经超过了 unsigned int 的存储容量!?好吧,我会被诅咒的。
标签: objective-c nsstring integer