ios - 解开分段字符串时发生 fatal error (swift3)

标签 ios swift string int swift3

这是我的代码,我不知道我做错了什么。所有的问题都在史蒂夫的函数中。 LebelText 是一个计时器标签,它与另一个 View Controller 分离。所以我想将 lebetText 将其转换为 int 并从中减去 1,然后将其重新转换回字符串以显示数字。

这是 View Controller a。正在搜索的文本是 lebelText。

 import UIKit

class testViewController: UIViewController {

@IBOutlet var lazel: UILabel!

@IBOutlet var plax: UIButton!
@IBOutlet var stopx: UIButton!

var timer = Timer()
var counter = 0.0
var isRunning = false


override func viewDidLoad() {
    super.viewDidLoad()





}

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let DestViewController : restultViewController = segue.destination as! restultViewController

    DestViewController.LebelText = lazel.text!

}
@IBAction func play(_ sender: Any) {

   if !isRunning{
    timer = Timer.scheduledTimer(timeInterval: 0.1, target: self, selector: #selector(testViewController.update), userInfo: nil, repeats: true)
 }
    plax.isEnabled = false
    stopx.isEnabled = true

        }

 @IBAction func stop(_ sender: Any) {

    plax.isEnabled = true
    stopx.isEnabled = false
    timer.invalidate()
    isRunning = false


   }


   func update(){
    counter += 0.1
    lazel.text = String(format: "1%f", counter)
    lazel.text = "\(counter)"


    }}

这是 View Controller b。目标是将 lebelText 转换为 int 并从中减去 1。然后将其转换回字符串以便可以显示。

   import UIKit
   class restultViewController: UIViewController {

   @IBOutlet var dxe: UILabel!


    var LebelText = String()

    let myInt = Int()

   override func viewDidLoad() {
   super.viewDidLoad()
  steve()

   }
  func steve(){

var eq = LebelText

var intValue = Int(eq)

let vx = intValue! - 1
let ramit = String(vx)
dxe.text = ramit
  }

最佳答案

好吧,摆脱可选的并确保它一切正常,你应该这样做

if let intValue = Int(eq) {
     vx = intValue - 1
     dxe.text = String(vx)
} else {
     //do some stuff if you  cannot convert eq to Int
}

但我建议您从一些更简单的任务开始,看来您没有完全学习基础知识。

import UIKit
class restultViewController: UIViewController {

    @IBOutlet var someLabel: UILabel!
    public var myText: String?

    override func viewDidLoad() {
       super.viewDidLoad()
       self.parseData()
    }

    private func parseData(){
        guard let unwrapedText = self.myText else {
            //you didn't pass string
            return
        }
        if let myInt = Int(unwrapedText) {
            myInt = myInt - 1 
            self.someLabel.text = String(myInt)
        } else {
            //you string is not convertable to int
        }
    }
}

关于ios - 解开分段字符串时发生 fatal error (swift3),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41512240/

相关文章:

fluent-nhibernate - 映射枚举列表

c# - C# 中的自定义字符串格式化程序

java - 附加字符串时出现速度问题

iOS 5.1.1 Popover 不会自动关闭

ios - Firebase 不将 URL 返回给 Swift

ios - 我们可以提交 xcode6 beta 版本吗?如何为 iOS8 准备应用程序?

swift - ActionPickerView 获取结果

ios - 在窗口中使用我的尺寸打开模态 ViewController

ios - 如何在 Swift 中分配一个可以为 null 的数组元素?

ios - 如何更改 ARSCNDebugOptions FeaturePoints 的外观?