2016-11-23 60 views
0

我有一个文本视图供用户输入一个Int。将文本视图设置为Int而不是String? Swift

我遇到了将结果保存到Int变量的问题,因为它默认认为它是一个字符串。

什么是强制输出为Int的最佳解决方案?我使用的是数字只有键盘,使用户无法进入串

代码:

@IBOutlet weak var userExerciseWeight: UITextField! 
var userExerciseWeightSet = Int() 

      if let userExerciseWeightSet = Int(self.userExerciseWeight.text!) { 
    } 
+1

您的测试代码在哪里? – Sachith

+1

请阅读这些链接以改善您的问题:[Tour](http://stackoverflow.com/tour)| [如何问](http://stackoverflow.com/help/how-to-ask)| [最小,完整和可验证示例](http://stackoverflow.com/help/mcve) – Tom

+0

更新了OP ... – infernouk

回答

1

您可以简单地使用if let结构为此。 textView总会是字符串。您所需要做的就是将textView文本转换为Int

if let intText = Int(self.textView.text) { 
    print(intText) 
} 
+0

我已经使用此代码方法更新了OP,它看起来是否正确? – infernouk

+0

你不需要写这行var userExerciseWeightSet = Int()。因为userExerciseWeightSet正在创建两次。 – Sahil

+0

所以为什么我不会使用var userExerciseWeightSet = Int(self.userExerciseWeight.text!),因为它会将变量设置为文本框中的Int值?或者我错过了一些东西。这是最好的位于viewDidLoad? – infernouk

0

我有结果保存到一个int变量,因为它默认的认为它是一个字符串的问题。

文本视图是一个视图,而不是一个模型。它显示的内容始终是一个字符串。当字符串恰好表示Int时,代码负责在设置初始值时将Int转换为String,然后在从视图中读取值时将String转换回Int

同样的方法适用于显示和读取其他类型的值:您的程序负责格式化并将数据解析为适当的类型。

相关问题