何らかの理由で、このNSStringを整数に変換すると、完全にランダムな(一貫した)番号が得られます。問題NSStringをIntに変換する
- (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!の記憶容量を超えている可能性がありますか?まあ、私は気になるでしょう。 – Perception
http://stackoverflow.com/questions/2107544/types-in-objective-c-on-iphone – albertamg