Swift 代码中的变量错误
Posted
技术标签:
【中文标题】Swift 代码中的变量错误【英文标题】:Variable error in Swift code 【发布时间】:2017-11-09 08:23:42 【问题描述】:我有一个 Xcode 项目有一些错误。我只有一个变量的问题。我将 txt 字符串变量转换为 int,这称为 txtint。当我想进行计算时,我不能,因为它有空值,这是不可能的,因为我在函数“pass”中给出了一个值,然后当我想减去时,我不能,因为 txtint 有空值。
//
// ViewController.swift
// Biophere
//
// Created by Coder on 2017. 10. 22..
// Copyright © 2017. Pliz Help. All rights reserved.
//
import UIKit
class ViewController: UIViewController
@IBOutlet weak var label: UILabel!
@IBOutlet weak var textview: UITextField!
@IBOutlet weak var conv: UILabel!
var text: String? = nil
var txt: String? = nil
var convert: String? = nil
var textint: Int? = nil
var txtint: Int? = nil
@IBAction func pass(_ sender: Any)
var txt: String
get
return textview.text ?? ""
set
textview.text = newValue
//conv.text = txt
override func viewDidLoad()
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
label.text = text
txt = textview.text
@IBAction func saveButton(_ sender: Any)
let textint = Int(text!)
let txtint = Int(txt!)
convert = String(textint! - txtint!)
conv.text = txt
override func didReceiveMemoryWarning()
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
错误:线程 1:EXC_BAD_INSTRUCTION(代码=EXC_I386_INVOP,子代码=0x0)
【问题讨论】:
从您发布的代码中,您从未在可选的“text”变量中放入有效值,您只需在 viewDidLoad 仍然为 nil 时使用它。这意味着在 saveButton 方法中展开它会使您的应用程序崩溃。你能解释一下你到底想做什么吗? 而不是声明为“nil”,而是简单地定义为空白“”,例如。 var text = "" 和 var textint = 0 。 Complier 会自动处理变量的类型。 【参考方案1】:var text: String = ""
var txt: String = ""
var convert: String = ""
var textint: Int = 0
var txtint: Int = 0
@IBAction func saveButton(_ sender: Any)
if let textint = Int(text), let txtint = Int(txt)
convert = String(textint - txtint)
conv.text = txt
else
print("handle it")
建议:尽量给变量名描述性,这是开发的基础。
【讨论】:
你还有崩溃吗? 不崩溃但什么都不做 是的,可能是您输入了错误的值。所以要根据应用场景来处理。 不知道什么意思,我可以和TeamViewer共享我的电脑 抱歉,我无法使用 Teamviewer,但您可以评论您在文本字段中输入的值。以上是关于Swift 代码中的变量错误的主要内容,如果未能解决你的问题,请参考以下文章
将视图控制器分配给 prepareForSegue 中的变量时的 Swift EXC_BREAKPOINT
iOS swift 中的错误域 = NSCocoaErrorDomain 代码 = 3840?
Swift 服务调用中的错误域 = NSURLErrorDomain 代码 = -1004 而不是 -1009