コードを書き終わり、シミュレーターでの実行も成功したので自分の端末にインストールしようとしたらこの様なエラーが発生しました。何回か類似するもの(Storyboard上での関連付け問題)を見た事があったので真っ先にチェックしましたが何の問題もありませんでした(よくよく考えるとそれならSimulatorでも発生する)。ボタンを押した後にクラッシュするので恐らく処理に使っているUIImagePickerControllerの問題だと思うのですが何故シミュレーターでは問題なく動作するのでしょうか?何方か教えてください。
Swift
1//コードの一部を載せておきます 2 @IBAction func loadFile(_: Any) { 3 openPicker(sourceType: UIImagePickerControllerSourceType.photoLibrary) 4 } 5 6 func openPicker(sourceType: UIImagePickerControllerSourceType) { 7 if !UIImagePickerController.isSourceTypeAvailable(sourceType) { 8 showAlert(title: "フォトライブラリ", text: "アクセスできません") 9 return 10 } 11 let picker = UIImagePickerController() 12 print("1") 13 picker.sourceType = sourceType 14 print("2") 15 picker.delegate = self 16 print("3") 17 present(picker, animated: false, completion: nil) 18 } 19 20 func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) { 21 print("4") 22 //この4がログにないのでこの動作が始まる前にクラッシュしていると思われる 23 let image = info[UIImagePickerControllerOriginalImage] as! UIImage 24 picker.presentingViewController?.dismiss(animated: true, completion: nil) 25 }
bt出力の結果〜
- thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
frame #0: 0x0000000190cf1014 libsystem_kernel.dylib__pthread_kill + 8 frame #1: 0x0000000190dbb264 libsystem_pthread.dylib
pthread_kill + 112
frame #2: 0x0000000190c659c4 libsystem_c.dylibabort + 140 frame #3: 0x00000001907311b0 libc++abi.dylib
abort_message + 132
frame #4: 0x000000019074ac04 libc++abi.dylibdefault_terminate_handler() + 304 frame #5: 0x0000000190758820 libobjc.A.dylib
_objc_terminate() + 124
frame #6: 0x00000001907475d4 libc++abi.dylibstd::__terminate(void (*)()) + 16 frame #7: 0x00000001907471a8 libc++abi.dylib
__cxa_rethrow + 144
frame #8: 0x00000001907586f8 libobjc.A.dylibobjc_exception_rethrow + 44 frame #9: 0x0000000191bd2e10 CoreFoundation
CFRunLoopRunSpecific + 532
frame #10: 0x000000019363c074 GraphicsServicesGSEventRunModal + 100 frame #11: 0x0000000197e8d058 UIKit
UIApplicationMain + 208- frame #12: 0x000000010005d0d0 appname
main at AppDelegate.swift:12 frame #13: 0x0000000190be159c libdyld.dylib
start + 4
- frame #12: 0x000000010005d0d0 appname
*シミュレーターでは予想していた様に動いたので端末関連の問題かもしれないんですけど、既に二台試しましたが同じ結果に収まりました。
*Github: https://github.com/narry0966/0xBF
「ボタンを押した後」は何のボタンでしょうか?あと、止まった後にConsoleで bt と入力して出力を教えて下さい。
@IBAction func loadFileです、出力は* thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT frame #0: 0x0000000190cf1014 libsystem_kernel.dylib`__pthread_kill + 8 frame #1: 0x0000000190dbb264 libsystem_pthread.dylib`pthread_kill + 112 frame #2: 0x0000000190c659c4 libsystem_c.dylib`abort + 140 frame #3: 0x00000001907311b0 libc++abi.dylib`abort_message + 132 frame #4: 0x000000019074ac04 libc++abi.dylib`default_terminate_handler() + 304 frame #5: 0x0000000190758820 libobjc.A.dylib`_objc_terminate() + 124 frame #6: 0x00000001907475d4 libc++abi.dylib`std::__terminate(void (*)()) + 16 frame #7: 0x00000001907471a8 libc++abi.dylib`__cxa_rethrow + 144 frame #8: 0x00000001907586f8 libobjc.A.dylib`objc_exception_rethrow + 44 frame #9: 0x0000000191bd2e10 CoreFoundation`CFRunLoopRunSpecific + 532 frame #10: 0x000000019363c074 GraphicsServices`GSEventRunModal + 100 frame #11: 0x0000000197e8d058 UIKit`UIApplicationMain + 208 * frame #12: 0x000000010005d0d0 appname`main at AppDelegate.swift:12 frame #13: 0x0000000190be159c libdyld.dylib`start + 4でした
行き詰まってる感じなのでgithubにあげます〜https://github.com/narry0966/0xBF〜見ていただけると嬉しいです
解決したのであればcloseして下さい。
回答2件
あなたの回答
tips
プレビュー