Я нахожусь на начальном пути построения калькулятора. В настоящее время код ничего не делает, кроме как печатать цифры и Pi в метке калькулятора, когда пользователь их забирает.Успех здания после этого «Thread 1: сигнал SIGABRT error» всплывает
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 функция связана со всеми кнопками цифр, как показано на рисунке. дисплей является UILable
в то время как performOperaton кнопка PI
Проблема
Когда я построить код, Xcode первый сказал мне, что здание было успешным, однако, прежде чем я мог сделать что угодно, появляется ошибка, следующая за
Error Log (копируется из зоны отладки)
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' вместо'! 'On optionsals. –
@IBOutlet слабый дисплей var: UILabel! = nil. Почему вы устанавливаете его на ноль? – ldindu
Вы вырезали журнал в самой интересной части: (Следующие строки были описанием исключения, которое в большинстве случаев сообщает вам все, что вам нужно знать. Кроме того, стоит установить контрольную точку исключения - https: // developer .apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/add_an_exception_breakpoint.html – Losiowaty