2016-07-28 1 views
1

私のアプリでは、日付ピッカーからデータを入力したい場合はtextfieldフォームがあり、テキストフィールドの入力ビューとして日付ピッカーが割り当てられていて、テキストフィールドのテキストを変更する場合はdatePickerValueChanged funcにピッカー変更されます。私の問題は、アプリ内のデータピッカーをオフクリックすると、全体のアプリはUIDatePickerクラッシュアプ​​リケーション

任意のアイデア「タイプNSExceptionのキャッチされない例外で終了する」

でクラッシュということでしょうか?ここに私のコードです:

@IBOutlet var startDatePickerField: UITextField! 

override func viewDidLoad() { 

    let startDatePicker:UIDatePicker = UIDatePicker() 
    startDatePicker.datePickerMode = UIDatePickerMode.dateAndTime 
    startDatePickerField.inputView = startDatePicker 
    startDatePicker.addTarget(self, action: #selector(popoverTableViewController.datePickerValueChanged(_:)), for: UIControlEvents.valueChanged) 

} 

func datePickerValueChanged(_ sender: UIDatePicker) { 

    let dateFormatter = DateFormatter() 
    dateFormatter.dateStyle = DateFormatter.Style.long 
    dateFormatter.timeStyle = DateFormatter.Style.short 
    startDatePickerField.text = dateFormatter.string(from: sender.date) 

} 

これは、すべてのビューコントローラ "popoverTableViewController"のクラスに含まれています。ありがとう!

2016年7月28日12:50:ここ

ログからクラッシュレポートである00.956 ClockIn_v2 [5935:2049267] - [ClockIn_v2.popoverTableViewController startDateDidBegin:]:認識されないセレクターインスタンス0x7ff571c10720に送信しました2016年7月28日 12:50:00.961 ClockIn_v2 [5935:2049267] *起因 キャッチされない例外 'NSInvalidArgumentException' にアプリを終了理由: 「 - [ClockIn_v2.popoverTableViewController startDateDidBegin:]: 認識されていないセレクタがインスタンス0x7ff571c10720に送信' *ファーストスローコールスタック:(0 CoreFoundation 0x000000010fe5986b exceptionPreprocess + 171 1 libobjc.A。dylib
0x000000010f4b124e objc_exception_throw + 48 2 CoreFoundationの
0x000000010fec7904 - [NSObjectの(NSObjectの)doesNotRecognizeSelector:] + 132 3 CoreFoundationの0x000000010fddfed5 ___forwarding_
+ 1013年4 CoreFoundationの0x000000010fddfa58 _CF_forwarding_prep_0 + 120 5のUIKit
0x000000011027aaf0 - [のUIApplication sendAction:へ: From:forEvent:] + 83 6のUIKit 0x00000001103fda69 - [するuicontrol sendAction:全forEvent:] + 67 7のUIKit 0x00000001103fdd82 - [するuicontrol _sendActionsForEvents:withEvent:] + 444 8のUIKit 0x0000000110d5b196 - [UITextFieldの_resignFirstResponder] + 297 9 UIKそれ0x000000011048d780 - [UIResponder _finishResignFirstResponder] + 286 10のUIKit 0x0000000110d5af94 - [UITextFieldの_finishResignFirstResponder] + 49 11のUIKit 0x000000011048d82f - [UIResponder resignFirstResponder] + 140 12 のUIKit 0x0000000110d5ae63 - [UITextFieldの resignFirstResponder] + 136 13のUIKit
0x000000011048d4bf - [ UIResponder becomeFirstResponder] + 358 14 のUIKit 0x0000000110328dae - [UIViewの(階層)becomeFirstResponder] + 138 15のUIKit 0x0000000110d59d2e - [UITextFieldのbecomeFirstResponder] + 51 16のUIKit 0x00000001107af37b - [UITextInteractionAssistant(UITextInteractionAssistant_Internal)setFirstResponderIfNecessary] + 206 17 UIKそれは
0x00000001107b2b46 - [UITextInteractionAssistant(UITextInteractionAssistant_Internal)oneFingerTap:] + 3823 18のUIKit
0x00000001107a081d - [UIGestureRecognizerTarget _sendActionWithGestureRecognizer:] + 57 19のUIKit 0x00000001107a85b4 _UIGestureRecognizerSendTargetActions + 109 20 + 540 21のUIKit 0x00000001107a539d _UIGestureRecognizerSendActions 0x00000001107a613b のUIKit - [UIGestureRecognizer _updateGestureWithEvent:buttonEvent:] + 1177年22のUIKit 0x00000001107911f2 _UIGestureEnvironmentUpdate + 1013年23のUIKit
0x0000000110790db5 - [UIGestureEnvironment _deliverEvent:toGestureRecognizers:usingBlo CK:] + 521 24のUIKit 0x000000011078ff2c - [UIGestureEnvironment _updateGesturesForEvent:ウィンドウ:] + 286 25のUIKit 0x00000001102e945c - [UIWindowのSendEvent:] + 3989 26のUIKit
0x00000001102967a5 - [のUIApplicationのSendEvent:] + 281 27のUIKit
0x0000000110a632c3 dispatchPreprocessedEventFromEventQueue + 3303 28のUIKit 0x0000000110a5be75 __handleEventQueue + 4879 29 CoreFoundationの0x000000010fdff5d1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 30 CoreFoundationの0x000000010fde485c __CFRunLoopDoSources0 + 556 31 CoreFoundationの0x000000010fde3d46 __CFRunLoopRun + 918 32 CoreFoundationの
0x000000010fde3754 CFRunLoopRunSpecific + 420 33 GraphicsServices
0x0000000114629a71 GSEventRunModal + 161 34のUIKit
0x0000000110278e9c UIApplicationMain + 159 35 ClockIn_v2
0x000000010eec96dfメイン+ 111 36 libdyld.dylib
のlibC++ ABI)+ 1を起動0x00000001136a968d。dylib:タイプNSException(lldb)

+0

あなたはフルクラッシュレポートを表示します –

+0

Iveはログコンテンツをクラッシュ時に投稿に追加しました。 – user2662468

+0

'popoverTableViewController'は適切に初期化されていますか?セレクタを含むインスタンスがnilの場合、例外がスローされます。 – NSGangster

答えて

1

の代わりに、それはあなたの日付ピッカーのアシスタントエディタ、一部で開いストーリーボード、右クリックで

startDatePicker.addTarget(self, action: #selector(popoverTableViewController.datePickerValueChanged(_:)), for: UIControlEvents.valueChanged) 

開く]を使用して、アクションを追加する キャッチされない例外で終了し、イベントのリストで「値の変更」をクリックします(正面の空いている穴にカーソルを合わせると少しの「+」記号が表示されます)。これを「popoverTableViewController.swift」ファイルに拡張します。

+0

ありがとう、この後完全に働いた:) – user2662468

関連する問題