2011-07-21 39 views
0

我有一個textView(tF1),將由用戶提供一個數值。我需要將它分配給int(n)。將textView的值分配給int,IOS

這是我想出了:

#import "blabla.h" 

int n; 

.... 

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

我的問題是,int值出來是一個變化較大的數字,像82296768,爲4

任何一個TextView值和所有的幫助將不勝感激! :)

解決

改變的線, 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一個'NSNumber'而不是'int'。 – PengOne