0
如果在UIText字段中輸入的值低於200,則會生成警報。檢查int值時導致UIText字段中的標點符號錯誤
如果用戶在該字段中添加>
以表示其大於200,則警報仍會被觸發。顯然,我不想這樣,所以我需要無視這個標點符號,甚至更好所有標點
違約爲數值的一些方法不僅是一種選擇
if ([_myTextBox.text intValue]< 200){
//alert is fired
}
如果在UIText字段中輸入的值低於200,則會生成警報。檢查int值時導致UIText字段中的標點符號錯誤
如果用戶在該字段中添加>
以表示其大於200,則警報仍會被觸發。顯然,我不想這樣,所以我需要無視這個標點符號,甚至更好所有標點
違約爲數值的一些方法不僅是一種選擇
if ([_myTextBox.text intValue]< 200){
//alert is fired
}
你的問題是,當一個字符串不啓動從有效的十進制數字,intValue
返回0.正確的方法是使用數字格式化程序:
NSNumberFormatter *formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSNumber *value = [formatter numberFromString:_myTextBox.text];
// if _myTextBox.text is not a valid number, value will be nil
if (number && ([number intValue] < 200) {
// Place your code here
}
啊,就是這樣!謝謝你,加上一個解釋爲什麼發生 – JSA986