저는 계산기를 만드는 초기 방법을 사용하고 있습니다. 현재이 코드는 사용자가 탭을 할 때 계산기 레이블에 숫자와 파이를 인쇄하는 것 외에는 아무것도하지 않고 있습니다.빌딩 성공 후 "스레드 1 : 신호 SIGABRT 오류"가 나타납니다
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 함수가 모든 숫자 버튼에 연결되어
UI. 디스플레이 내가 코드를 빌드 할 때 Xcode를 먼저 건물이 성공 나에게 말했다
UILable
동안 performOperaton 내가 전에, 그러나, PI 버튼
문제입니다 무엇이든 할 수 있습니다. 따라 오는 오류가 있습니다.
(디버그 영역에서 복사)오류 로그
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)
아마 optionals에서'! '대신'if let'을 사용하여 시작하십시오. –
@IBOutlet weak display : UILabel! = nil. 왜 그것을 nil로 설정합니까? – ldindu
당신은 가장 흥미로운 부분에서 로그를 자른다. (다음 줄은 대부분의 경우 알아야 할 모든 것을 알려주는 예외에 대한 설명이다.) 또한 예외 중단 점을 설정하는 것이 가치가있다. - https : // developer .apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/adding_an_exception_breakpoint.html – Losiowaty