UITextFieldがあります。これは、NSNumberFormatterとNSNumberFormatterDecimalStyleを使用して、テキストフィールドをNSNumberに変換し、オブジェクトを初期化しようとしています。
ただし、これを行うと、変換から適切な結果を得ることができません。この例では、UITextFieldを文字列に置き換えましたが、それでも奇妙な結果が得られます。私は何か気の利いたことをしていると確信していますが、助けていただければ幸いです。
//NSString * boardNumberText = self.txtBoardNumbs.text;
NSString * boardNumberText = @"42";
NSNumberFormatter * formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber * boardNumber = [formatter numberFromString:boardNumberText];
if ([boardNumber isEqual:nil]) {
NSLog(@"Number was null");
}
NSLog(@"Number was not null");
[self.board setNumber:boardNumber];
NSLog(boardNumberText);
NSLog([NSString stringWithFormat:@"%d", boardNumber]);
NSLog([NSString stringWithFormat:@"%d", self.board.number]);
これを実行したときにログファイルから取得する出力は次のとおりです。
2012-07-15 16:54:26.564 CoreDataDev[16123:fb03] Number was not null
2012-07-15 16:54:26.564 CoreDataDev[16123:fb03] 42
2012-07-15 16:54:26.565 CoreDataDev[16123:fb03] 135821152
2012-07-15 16:54:26.565 CoreDataDev[16123:fb03] 135820272