я модернизировал проект Swift 3 и я получаю аварии на линии (в различных точках/viewControllers в проекте):IOS Swift 3 UIImagePickerController аварии
present(picker, animated: true, completion: nil)
в функции:
@IBAction func userImage(_ sender: AnyObject){
print("button pressed")
let picker = UIImagePickerController()
picker.delegate = self
picker.allowsEditing = false
picker.sourceType = .photoLibrary
present(picker, animated: true, completion: nil) // -> crashes here
}
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
let image = info[UIImagePickerControllerOriginalImage] as! UIImage
self.imageToPost.setImage(newImage, for: UIControlState())
self.imageToPost.imageView?.contentMode = UIViewContentMode.scaleAspectFill
picker.dismiss(animated: true, completion: nil)
}
сообщение аварии в консоли:
libsystem_kernel.dylib`__abort_with_payload:
0x11108d138 <+0>: movl $0x2000209, %eax ; imm = 0x2000209
0x11108d13d <+5>: movq %rcx, %r10
0x11108d140 <+8>: syscall
-> 0x11108d142 <+10>: jae 0x11108d14c ; <+20>
0x11108d144 <+12>: movq %rax, %rdi
0x11108d147 <+15>: jmp 0x111086d6f ; cerror_nocancel
0x11108d14c <+20>: retq
0x11108d14d <+21>: nop
0x11108d14e <+22>: nop
0x11108d14f <+23>: nop
в моем в info.plist у меня есть:
<key>NSPhotoLibraryUsageDescription</key>
<string>$(PRODUCT_NAME) photo gallery use</string>
<key>NSCameraUsageDescription</key>
<string>$(PRODUCT_NAME) camera use </string>
<key>NSMicrophoneUsageDescription</key>
<string>$(PRODUCT_NAME) microphone use</string>
Я огляделся и видел, что с NSPhotoLibraryUsageDescription и NSCameraUsageDescription в info.plist решает эту проблему (UIImagePickerController in Swift 3 и UIImagePickerController crashes app | Swift3, Xcode8), но это не для меня. Я сделал чистый и построить, перезапустить Xcode, перезапустить Mac и т.д.
Может быть, стоит отметить, что моя консоль при запуске говорит:
objc[11204]: Class PLBuildVersion is implemented in both /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/AssetsLibraryServices.framework/AssetsLibraryServices (0x11a0d8910) and /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator.sdk/System/Library/PrivateFrameworks/PhotoLibraryServices.framework/PhotoLibraryServices (0x119f02210). One of the two will be used. Which one is undefined.
, но в соответствии с этим потоком, который не имеет значения https://forums.developer.apple.com/thread/63254
мой класс имеет делегатов:
class PersonalSettingsVC: UIViewController, UITextFieldDelegate, UITextViewDelegate, UINavigationControllerDelegate, UIImagePickerControllerDelegate
Любая помощь очень ценится
Set Two delegate => UIImagePickerControllerDelegate, UINavigationControllerDelegate –
Привет, два делегата есть. Цените, что вы отвечаете. –
@PeterdeVries, с которого в момент вашего краха приложения ... – seggy