【问题标题】:My New ViewController is giving SIGABRT error?我的新 ViewController 出现 SIGABRT 错误?
【发布时间】:2016-10-17 00:06:53
【问题描述】:

我有许多不同的按钮,例如 UIStepper 和 DatePicker 以及 MapView。谁能帮我让我的整个视图控制器和按钮工作。我收到关于 SIGABRT 的错误。它说“由于未捕获的异常 'NSInvalidArgumentException' 而终止应用程序,原因:'-[Field_Service_Report.AddController hoursStepper:]: unrecognized selector sent to instance 0x7fb5d7c8d010'”

这是我的视图控制器代码:

import UIKit
import MapKit
import CoreLocation

class AddController: UIViewController, MKMapViewDelegate, CLLocationManagerDelegate {

@IBOutlet weak var hoursStepperResult: UILabel!

@IBOutlet weak var hoursStepper: UIStepper!

@IBOutlet weak var minutesStepperResult: UILabel!

@IBOutlet weak var minutesStepper: UIStepper!

@IBOutlet weak var currentLocationLabel: UILabel!

@IBOutlet weak var dateOfReport: UIDatePicker!

@IBOutlet weak var mapView: MKMapView!

let locationManager = CLLocationManager()

override func viewDidLoad() {
    super.viewDidLoad()

    // Start Map Contents
    self.locationManager.delegate = self
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBest
    self.locationManager.requestWhenInUseAuthorization()
    self.locationManager.startUpdatingLocation()
    self.mapView.showsUserLocation = true
    // End Map Contents

}

// Start Stepper Contents

@IBAction func hoursStepperAction(_ sender: UIStepper) {
    hoursStepperResult.text = String(Int(sender.value))
}

@IBAction func minutesStepperAction(_ sender: UIStepper) {
    minutesStepperResult.text = String(Int(sender.value))
}


// End Stepper Contents

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}
// Here is the new code its giving me 3 erroe because im trying to get the text and numbers from another ViewController to print out in this VC.

@IBAction func doneACButton(_ sender: AnyObject) {
    let newVC = storyboard?.instantiateViewController(withIdentifier: "ResultController") as! ResultController
    newVC.intPassed = hoursIntProvided
    newVC.intPassed = minutesIntProvided
    newVC.stringPassed = resultedHours.text!

}


func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {

    let location = locations.last
    let center = CLLocationCoordinate2D(latitude: location!.coordinate.latitude, longitude: location!.coordinate.longitude)
    let region = MKCoordinateRegion(center: center, span: MKCoordinateSpan(latitudeDelta: 1, longitudeDelta: 1))
    self.mapView.setRegion(region, animated: true)
    self.locationManager.stopUpdatingLocation()
}

func locationManager(_ manager: CLLocationManager, didFailWithError error: Error) {
    print("Errors: " + error.localizedDescription)
}



// MARK: - Navigation


}

【问题讨论】:

  • 从哪里实例化这个视图控制器?请出示该代码
  • 我在方法中遇到了很多错误。我将代码添加到现有代码的底部。

标签: ios swift3 sigabrt


【解决方案1】:

注意方法签名中的冒号:

-[Field_Service_Report.AddController hoursStepper:]
                                                 ^

这是接受参数的方法的签名,而不是访问器的签名。您确定您没有在某处拼错选择器名称或在 IB 中意外连接了应该删除的内容吗? (也许你重命名了一个方法而忘记重做动作连接?)

【讨论】:

  • 感谢您的建议,但我已经尝试了所有方法,但我现在仍然无法弄清楚我只是收到一条错误消息说 setValue:我的应用程序图标只有 2 个警告,何时我播放应用程序并单击按钮转到下一个 VC 它崩溃并给我那个错误。(SIGABRT)
猜你喜欢
  • 1970-01-01
  • 2023-02-21
  • 1970-01-01
  • 1970-01-01
  • 2018-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多