这是我的代码,我不知道我做错了什么。所有的问题都在史蒂夫的函数中。 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/