ios - 尝试将多个 Uitextfields 添加为整数
问题描述
我无法将我的 Uitextfields 转换为整数。我正在尝试将它们相加以获得第 2 洞和第 3 洞的总分?大家有什么想法吗?我尝试过 Int(hole.text) 和许多其他变体,但我不断收到错误。
//
// ViewController.swift
// Savetext5
//
// Created by Brendan Berkowitz on 1/31/19.
// Copyright © 2019 Brendan Berkowitz. All rights reserved.
//
import UIKit
class ViewController: UIViewController {
//hole one
@IBOutlet weak var playername: UITextField!
@IBAction func saveButton(_ sender: Any) {
UserDefaults.standard.set(playername.text, forKey: "playonename")}
@IBAction func deleteButton(_ sender: Any) {
UserDefaults.standard.removeObject(forKey: "playonename")}
// hole 2
@IBOutlet weak var holetwo: UITextField!
@IBAction func saveButton2(_ sender: Any) {
UserDefaults.standard.set(holetwo.text, forKey: "holetwo")}
@IBAction func deleteButton2(_ sender: Any) {
UserDefaults.standard.removeObject(forKey: "holetwo")}
// hole 3
@IBOutlet weak var holethree: UITextField!
@IBAction func savebutton3(_ sender: Any) {UserDefaults.standard.set(holethree.text, forKey: "holethree")}
@IBAction func deletebutton3(_ sender: Any) {UserDefaults.standard.removeObject(forKey: "holethree")}
override func viewDidLoad() {
super.viewDidLoad()
//hole one
let savedName = UserDefaults.standard.object(forKey: "playonename")
if let playeronename = savedName as? String {
playername.text = playeronename
}
// Hole two
let savedholetwoname = UserDefaults.standard.object(forKey: "holetwo")
if let holetwoname = savedholetwoname as? String {
holetwo.text = holetwoname
}
// hole three
let savedholethreename = UserDefaults.standard.object(forKey: "holethree")
if let holethreename = savedholethreename as? String {
holethree.text = holethreename
}
}
}
解决方案
您可以选择许多解决方案。但在将文本字段的文本转换为 Int 之前,您应该进行一些检查和处理,例如文本是否为空?文本的格式是否有效?
// define utility function
extension UITextField {
var textToInt: Int {
// return 0 as default value
return Int(text ?? "0") ?? 0
}
}
class ViewController: UIViewController {
func totalScore() -> Int {
return holetwo.textToInt + holethreename.textToInt
}
}
推荐阅读
- laravel - 如何从 Laravel 5.8 的视图中将参数传递给 getFooAttribute() megic 方法
- c - 这段代码的输出是什么,你能解释一步一步的进展吗?
- python - 尝试使用 astropy 将 FITS 文件转换为 ndarray 时获取 NaN 值
- java - 运行 gradle clean build 时面临问题
- excel - 如何通过excel vba将值输入网站输入
- ember.js - dayJS 是否有任何“ember-moment-shim”替代方案?
- angular - 从 Angular 应用程序调用第三方 API 时无法传递客户标头选项
- pine-script - 根据条件定义入场价格
- c# - How to convert timezone offset text "+01:00" to timespan
- kotlin - Kotlin MPP - 无法解析 Stetho 拦截器