2011-07-21 10 views
0

私は、ユーザーが数値を入力するtextView(tF1)を持っています。私はint(n)にnumberに割り当てる必要があります。int、IOSにtextViewの値を割り当てます。

これは私が思い付いたものです:

#import "blabla.h" 

int n; 

.... 

[tF1 resignFirstResponder]; 
n = (int)[tF1 text]; 
NSLog(@"n is, %d",n); 

私の問題は、int型の値が4

任意のTextViewの値のために、82296768のように、大きな数を変更することが出てくるということですすべての助けが大いに評価されるでしょう! :)

を解決し、ラインを変更 N =(INT)TF1テキスト]。

to、 n = [[tF1 text] initValue];

答えて

3

NSStringは、使用するメソッドintValueあります

n = [[tF1 text] intValue]; 

をNSStringのためのドキュメントからを、あなたが取得することができ、他の数値は以下のとおりです。

– doubleValue 
– floatValue 
– intValue 
– integerValue 
– longLongValue 
– boolValue 

このプロセスを反転するには、その数値を文字列として追加することです。NSStringメソッド-stringWithFormat:を使用することができます。

[tF1 setText:[NSString stringWithFormat:@"%d", someIntValue]]; 
+0

これは非常にエラーが発生しやすく、正しくありません。テキストフィールドに無効な数値が含まれている場合、0が返され、アプリケーションは有効な数値(0)が入力されたと信じさせます。 –

+0

@Dylan:OPは 'tF1'に数値があることを指定しました。この場合、これが最善の方法です。 – PengOne

+0

実際には、OPは 'tf1'がユーザ*から提供された数値*を持つように指定しました。この場合、ユーザ入力を検証することが常にベストプラクティスであり、「NSNumberFormatter」は重い吊り上げを処理します。 –

1

数値を取得するには、NSNumberFormatterを使用する必要があります。 documentationのメソッドnumberFromString:を見てください。

+0

これは技術的に、OPに 'int'ではなく' NSNumber'を与えます。 – PengOne

関連する問題