【发布时间】:2016-07-28 17:53:04
【问题描述】:
我正在初步构建计算器。目前,代码除了在用户点击时将数字和 Pi 打印到计算器的标签中之外什么都不做。
1) 车码
import UIKit
class ViewController: UIViewController {
@IBOutlet weak var display: UILabel! = nil
var userIsInTheMiddleOfTypeing = false
@IBAction func touchDigit(_ sender: UIButton){
let digit = sender.currentTitle!
if userIsInTheMiddleOfTypeing {
let textCurrentlyInDisplay = display.text!
display.text = textCurrentlyInDisplay + digit
} else {
display.text = digit
}
userIsInTheMiddleOfTypeing = true
}
@IBAction func performOperation(_ sender: UIButton) {
userIsInTheMiddleOfTypeing = false
if let methematicalSymbol = sender.currentTitle {
if methematicalSymbol == "π" {
display.text = String(M_PI) // M_PI
}
}
}
}
2) 用户界面
touchDigit 功能链接到所有数字按钮,如下图所示。 display 是 UILable 而 performOperaton 是 PI 按钮
问题
当我构建代码时,Xcode首先告诉我构建成功,但是,我还没来得及做任何事情,就弹出了一个错误,如下所示
错误日志(从调试区复制)
2016-07-28 19:30:30.215343 Calculator[11671:208157] bundleid: com.Jeffery.Calculator, enable_level: 0, persist_level: 0, propagate_with_activity: 0
2016-07-28 19:30:30.218796 Calculator[11671:208157] Created DB, header sequence number = 260
2016-07-28 19:30:30.767300 Calculator[11671:208178] subsystem: com.apple.UIKit, category: HIDEvents, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-07-28 19:30:31.022078 Calculator[11671:208157] Created DB, header sequence number = 260
2016-07-28 19:30:31.350380 Calculator[11671:208157] subsystem: com.apple.BaseBoard, category: MachPort, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
2016-07-28 19:30:31.388363 Calculator[11671:208159] subsystem: com.apple.FrontBoard, category: Common, enable_level: 0, persist_level: 0, default_ttl: 0, info_ttl: 0, debug_ttl: 0, generate_symptoms: 0, enable_oversize: 0, privacy_setting: 0
libc++abi.dylib: terminating with uncaught exception of type NSException
(lldb)
【问题讨论】:
-
也许可以从使用
if let而不是!开始。 -
@IBOutlet 弱变量显示:UILabel! = 无。为什么将其设置为零?
-
您在最有趣的部分截断了日志 :( 下一行是异常的描述,在大多数情况下,它会告诉您您需要知道的一切。此外,设置异常是值得的断点 - developer.apple.com/library/ios/recipes/…
-
如果问题已解决,请接受解决问题的答案,或发布您自己的答案。如果您有新问题,请发布一个新的、不同的 问题,但不要更改现有问题的含义。谢谢。
-
@EricD 好点,有道理。我会这样做的
标签: ios swift3 xcode8-beta3