我有许多不同的按钮,如UIStepper和DatePicker以及MapView。任何人都可以帮助我让我的整个视图控制器和按钮工作。我收到了有关SIGABRT的错误。它说"由于未捕获的异常终止应用' NSInvalidArgumentException',原因:' - [Field_Service_Report.AddController hoursStepper:]:无法识别的选择器发送到实例0x7fb5d7c8d010'& #34;
这是我的View Controller代码:
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
}
答案 0 :(得分:0)
请注意方法签名中的冒号:
-[Field_Service_Report.AddController hoursStepper:]
^
这是采用参数的方法的签名,而不是访问者的签名。你确定你没有在某个地方拼错一个选择器名称,或者在IB中意外连接应该被移除的东西吗? (也许如果你重命名了一个方法并忘了重做动作连接?)