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

Xcode没有看到变量

Xcode:Alamofire 源代码中的 Swift Dropbox 错误

Swift语法[变量常亮区间运算符字典]