

日付を変更するアプリを作成したいのですが以下のコードでエラー(signal SIGABRT)が出ます。  
大変お手数ですがアドバイス頂けないでしょうか？

[code]

    import UIKit
    
    class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate,UITextFieldDelegate {
    
        @IBOutlet weak var Picture1: UIButton!
        @IBOutlet weak var Pictureimage1: UIImageView!
        @IBOutlet weak var Date: UILabel!
        @IBOutlet weak var Name: UILabel!
        @IBOutlet weak var WO: UILabel!
        @IBOutlet weak var Card: UILabel!
        @IBOutlet weak var SelectDate: UITextField!
        @IBOutlet weak var text1: UITextField!
        @IBOutlet weak var text2: UITextField!
        @IBOutlet weak var text3: UITextField!
        @IBOutlet weak var but: UIButton!
        @IBOutlet weak var sub: UILabel!
    
        let nowDate = NSDate()
        let dateFormat = DateFormatter()
        let inputDatePicker = UIDatePicker()
    
        override func viewDidLoad() {
            super.viewDidLoad()
    
            dateFormat.dateFormat = "yyyy/MM/dd"
            self.SelectDate.text = dateFormat.string(from: nowDate as Date)
            self.SelectDate.delegate = self
    
            inputDatePicker.datePickerMode = UIDatePickerMode.date
            self.SelectDate.inputView = inputDatePicker
    
            let pickerToolBar = UIToolbar(frame: CGRect(x:0, y:self.view.frame.size.height/6, width: self.view.frame.size.width, height: 40.0))
            pickerToolBar.layer.position = CGPoint(x: self.view.frame.size.width/2, y: self.view.frame.size.height-20.0)
            pickerToolBar.barStyle = .blackTranslucent
            pickerToolBar.tintColor = UIColor.white
            pickerToolBar.backgroundColor = UIColor.black
    
            let spaceBarBtn = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.flexibleSpace,target: self,action: Selector(("a:")))
    
            let toolBarBtn = UIBarButtonItem(title: "OK", style: .done, target: self, action: Selector(("toolBarBtnPush:")))
    
            pickerToolBar.items = [spaceBarBtn, toolBarBtn]
            self.SelectDate.inputAccessoryView = pickerToolBar
        }
    
            func toolBarBtnPush(sender: UIBarButtonItem){
                let pickerDate = inputDatePicker.date
                self.SelectDate.text = dateFormat.string(from: pickerDate as Date)
    
                self.view.endEditing(true)
            }
    }
    
[/code]


CC BY-SA 3.0
2016-11-18T15:07:33.667
30516
2016-11-18T18:09:18.260
2016-11-18T18:04:20.000
18540
19623
question
swift swift3
swiftで日付を変更する


Swift 3より、セレクタの書式が変わりました。

[code]

    let toolBarBtn = UIBarButtonItem(title: "OK",
        style: .done,
        target: self,
        action: Selector(("toolBarBtnPush:")))
    
[/code]

_書式だけでなく、かっこがワンセット余計。_

この行の`Selector("toolBarBtnPush:")`は、こう変わります。

[code]

    #selector(ViewController.toolBarBtnPush(sender:))
    
[/code]

`ViewController`クラス内で指定するとき、`ViewController.`は、省略できます。（アクションメソッドが、どのクラスに定義されているか、明示しましょうと推奨されているので、クラス名を頭につけています。）

* * *

※本題と関係ありませんが、Swift 3より、型名`NSDate`は、`Date`に変更されましたから、統一したほうが、スッキリします。`as
Date`というキャストが不用にもなります。


CC BY-SA 3.0
2016-11-18T18:09:18.260
30519
2016-11-18T18:09:18.260
18540
30516
answer