source

PhotoPicker 검색 오류: 오류 도메인=PlugInKit 코드=13

ittop 2023. 8. 26. 00:01
반응형

PhotoPicker 검색 오류: 오류 도메인=PlugInKit 코드=13

사진 라이브러리의 이미지를 UIImageView에 표시하려고 합니다.

전체 오류는 다음과 같습니다.

2017-06-09 21:55:59.063307+0200 첫 번째 앱 2.0[12873:1120778] PhotoPicker 검색 오류: 오류 도메인=PlugInKit 코드=13 "취소되지 않음" UserInfo={NSLocalizedDescription=취소됨}

내 코드는 아래에 포함되어 있습니다.

import UIKit

class ViewController: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate{

    @IBOutlet weak var pic: UIImageView!
    @IBOutlet weak var text: UILabel!

    var chosenImage : UIImage!

    override func viewDidLoad() {
        super.viewDidLoad()        
        pic.isUserInteractionEnabled = true;
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [AnyHashable: Any]) {
        var chosenImage = info[UIImagePickerControllerEditedImage]
        self.pic!.image = chosenImage as! UIImage
        picker.dismiss(animated: true, completion: nil)
    }

    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        picker.dismiss(animated: true, completion: nil)
    }

    @IBAction func tap(_ sender: Any) {        
        self.text.text = "Kreason"
        let imagePicker = UIImagePickerController()    
        imagePicker.delegate = self        
        imagePicker.sourceType = UIImagePickerControllerSourceType.photoLibrary
        imagePicker.allowsEditing = false    
        self.present(imagePicker, animated: true, completion: nil)
    }
}

.@objc

@objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    let chosenImage = info[UIImagePickerControllerOriginalImage] as! UIImage
    image = chosenImage
    self.performSegue(withIdentifier: "ShowEditView", sender: self)
    dismiss(animated: true, completion: nil)
}

저는 이 해결책을 찾았습니다.우리는 아래에 언급된 두 가지 이유로 인해 이 오류가 발생했습니다.

  1. 먼저 이 방법을 불러 승인을 받아야 합니다.

인증 코드

func checkPermission() {
  let photoAuthorizationStatus = PHPhotoLibrary.authorizationStatus() switch photoAuthorizationStatus {
    case .authorized: print("Access is granted by user")
    case .notDetermined: PHPhotoLibrary.requestAuthorization({
      (newStatus) in print("status is \(newStatus)") if newStatus == PHAuthorizationStatus.authorized { / do stuff here */ print("success") }
    })
    case .restricted: / print("User do not have access to photo album.")
    case .denied: / print("User has denied the permission.")
  }
}
  1. 걸기didFinishPickingMediaWithInfo

틀렸습니다:

private func imagePickerController( picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
} 

맞다

@objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
} 

이 솔루션이 이 오류를 해결하는 데 도움이 되기를 바랍니다.

올바른 방법으로 표시하는 것을 잊지 마십시오. 다른 사용자가 올바른 방법을 찾는 데 도움이 됩니다.

찾았어요!당신에게 "사진"에 대한 권한이 없다고 말하려고 합니다. 당신은 그것을 포함해야 합니다.#import <Photos/Photos.h>그리고 Objective-C에서 이와 같은 예를 들어 승인을 요청합니다.

이것으로 시간을 절약할 수 있기를 바랍니다.이틀이나 꼬박 이걸 디버깅했어요!

[PHPhotoLibrary requestAuthorization:^(PHAuthorizationStatus status) {
    switch (status) {
        case PHAuthorizationStatusAuthorized:
            NSLog(@"PHAuthorizationStatusAuthorized");
            break;
        case PHAuthorizationStatusDenied:
            NSLog(@"PHAuthorizationStatusDenied");
            break;
        case PHAuthorizationStatusNotDetermined:
            NSLog(@"PHAuthorizationStatusNotDetermined");
            break;
        case PHAuthorizationStatusRestricted:
            NSLog(@"PHAuthorizationStatusRestricted");
            break;
    }
}];

나는 누군가가 스위프트에서 같은 방법을 당신에게 알려줄 수 있다고 확신합니다.

몇 가지 조합 응답을 시도했지만 성공하지 못했습니다.

Swift 4를 사용하여 이미지가 선택되고 피커에 배치되도록 하려면 다음 두 가지 항목이 구현되어야 한다는 것을 알게 되었습니다(확장자를 검색하는 동안 [검색] 오류가 발생했습니다).

오류 Domain=PlugInKit Code=13 "잘못된 취소됨" UserInfo={NSLocalizedDescription=잘못된 취소됨}"

메시지가 콘솔에 계속 표시되지만 이미지를 추가할 수는 없습니다.아마도 이것이 피커가 해고되는 결과를 초래하는 메시지인가요?

의 .UIImagePickerController이라(UIImagePickerControllerDelegate & UINavigationControllerDelegate)?따라서 명시적으로 추가할 필요가 있습니다.UINavigationControllerDelegate중 로: 프토콜중하나로:

class ViewController:UIViewController, UIImagePickerControllerDelegate, 
    UINavigationControllerDelegate { .... }. 

에 info.plist 파일이 합니다.Privacy - Photo library Usage Description키 및 문자열 값이 설정되었습니다.

물론, 당신은 당신이 그것을 만들 필요가 있습니다.UIImagePickerController대리인을 다음과 동일하게 설정합니다.selfViewDidLoad():

class ViewController:UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate { 
    let imagePickerController = UIImagePickerController()
    override func viewDidLoad() {
        super.viewDidLoad()
        imagePickerController.delegate = self
    }
    ...
}

나는 이 문제를 해결했습니다. 아래 함수를 viewdidload로 호출하거나 viewWillAppear 또는 viewDidAppear를 통해 당신의 앱에 대한 권한을 확인할 수 있습니다.

func checkPermission() {
        let photoAuthorizationStatus = PHPhotoLibrary.authorizationStatus()
        switch photoAuthorizationStatus {
        case .authorized:
            print("Access is granted by user")
        case .notDetermined:
            PHPhotoLibrary.requestAuthorization({
                (newStatus) in
                print("status is \(newStatus)")
                if newStatus ==  PHAuthorizationStatus.authorized {
                    /* do stuff here */
                    print("success")
                }
            })
            print("It is not determined until now")
        case .restricted:
            // same same
            print("User do not have access to photo album.")
        case .denied:
            // same same
            print("User has denied the permission.")
        }
    }

그리고 위의 방법을 사용하기 위해, 잊지 말고 추가하세요.import Photos반에서 1등으로

XCODE 10.1 / SWIFT 4.2 :

  1. 필요한 사용 권한 추가(기타 언급됨)

  2. 다음 대리자 함수 구현:

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]) {
    
        if let pickedImage = info[UIImagePickerController.InfoKey.originalImage] as? UIImage {
            self.imgView.contentMode = .scaleAspectFit
            self.imgView.image = pickedImage
        }
    
        dismiss(animated: true, completion: nil)
    }
    

Swift 3에서 DELECTOR * 누락

정확했습니다: 경우모든설정확습니다했정제이다니▁in습▁correct▁was제정했▁all확:.
- 이미지 피커 컨트롤러 딜러 1 - UI 컨트롤러 딜러UI 내비게이션 컨트롤러 대표단);
- , 2 - 사용 권한,
- 완료됨 3 - Plist 가이완습니다었되료미;다;
4 - 이 답변에 대한 모든 내용을 읽었습니다.

하지만 구현하는 것을 잊었습니다.pickerview.delegate = selfviewDidLoad왜냐하면 다른 뷰 컨트롤러에서 복사하여 붙여넣고 잊어버리기 때문입니다!

누군가에게 도움이 되기를 바랍니다. 먼저 복사/붙여넣기를 검토하십시오!

이것이 가장 직접적으로 도움이 되는 대답은 아닐 수도 있지만, 도움이 되기를 바랍니다!저는 이 특정 오류 메시지가 실제 문제를 가리키는 것이 아니라고 99% 확신합니다.저는 똑같은 문제로 몇 시간을 보냈습니다.

선택 도구를 시작할 때 콘솔에 사진을 인쇄할 수 있는 권한이 있었고, 2) 사진을 쉽게 탐색하고 선택할 수 있었으며, 3) 선택 도구를 해제할 때 내 보기로 돌아갈 때 버튼 이미지가 새 사진으로 업데이트되지 않았습니다.문제에 대한 유일한 힌트는 당신이 받고 있는 것과 정확히 같은 오류 메시지였습니다.

결과적으로 나는 ViewDidLoad 대신 ViewWillAppear에 자리 표시자 이미지를 하드 코딩하고 있었습니다.선택기가 해제될 때마다 ViewWillAppear(보기 표시)를 호출하고 선택한 이미지를 하드 코딩된 이미지로 교체했습니다.저는 그 문제를 해결했고, 확실히 지금은 모든 것이 잘 작동하고 있습니다.피커에서 돌아올 때마다 오류 메시지가 나타납니다.

이미지 선택기가 아닌 다른 곳에서 문제를 찾을 것을 권장합니다.

아직 시도하지 않은 경우 이 방법을 사용하십시오.

> > > 환경변수 > 환경변수 > 환경변수 > 환경변수 > 환경변수OS_ACTIVITY_MODE: disable

그게 제 문제를 해결해줍니다.

콜백에서 하려고 할 때 되었습니다. ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜㅜimagePickerController 해제 이었습니다.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        picker.dismiss(animated: true) {
            if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
                let cropController:CropViewController = CropViewController(croppingStyle: .circular, image: pickedImage)
                cropController.delegate = self
                self.present(cropController, animated: true, completion: nil)
            }
        }
    }

이렇게 하면 Swift 4의 문제가 해결됩니다.

아래 코드 변경

func imagePickerController(picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : AnyObject]) {}

대상:

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {}


Swift 4.2 update:
func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any]){}

가지를 하위 .UIImagePickerControllerDelegate, UINavigationControllerDelegate.

또한 딜러를 설정해야 합니다.

let picker = UIImagePickerController()
picker.allowsEditing = true
picker.sourceType = .photoLibrary
picker.delegate = self  //Don't forget this line!
self.present(picker, animated: true, completion: nil)

원본에 대한 크레딧입니다.

이 문제의 해결책을 찾는 데는 시간이 오래 걸렸습니다.UIImagePickerControllerDelegate의 기능 이미지 PickerController를 찾을 수 없다는 것이 문제인 것 같습니다.대리자를 올바르게 설정했는데 Swift 4로 업그레이드한 후 작동이 중지된 경우 Swift 4 이후에 필요한 @objc를 사용하여 Objective-C에 액세스할 수 있도록 하지 않은 것이 문제일 수 있습니다.

다음과 같아야 합니다.

@objc func imagePickerController(...

대신에

func imagePickerController(...

이미지 설정 시 1초 지연을 설정하여 수정하였습니다.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if let image = info[UIImagePickerControllerOriginalImage] as? UIImage {

        picker.dismiss(animated: false, completion: nil)
        DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
            self.discussionImage.image = image
        })
    }
}

해야합니다를 하세요.internal func합니다._ picker: UIImagePickerController…그런 다음에서 변경합니다.AnyObjectAny]…
아래 코드 확인:

internal func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {

        userPhoto.image = pickedImage

    }

    self.dismiss(animated: true, completion: nil)
}

이것은 저를 당황하게 했지만, 아래 링크의 답은 저에게 효과가 있었습니다.오류가 사라지고 이미지가 예상대로 표시됩니다.

위의 대답 중 하나처럼, 당신은 다음과 같이 해야 합니다.(_ picker...하지만 또한@objc에 . . . . .

@objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingImage image: UIImage!, editingInfo: [NSObject : AnyObject]!) {
...
}

https://forums.developer.apple.com/thread/82105

이것으로 나의 오류가 해결되었습니다.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage
    addPhotoBtn.setImage(pickedImage, for: .normal)
    dismiss(animated: true, completion: nil)


}

func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    dismiss(animated: true, completion: nil)

}

다음과 같이 단계별로 확인하시기 바랍니다.

  1. 사진 가져오기
  2. 앨범에 액세스할 수 있습니다.

    func authorizeToAlbum(completion:@escaping (Bool)->Void) {
    
    if PHPhotoLibrary.authorizationStatus() != .authorized {
        NSLog("Will request authorization")
        PHPhotoLibrary.requestAuthorization({ (status) in
            if status == .authorized {
                DispatchQueue.main.async(execute: {
                    completion(true)
                })
            } else {
                DispatchQueue.main.async(execute: {
                    completion(false)
                })
            }
        })
    
    } else {
        DispatchQueue.main.async(execute: {
            completion(true)
        })
    }
    }
    
  3. UI 이미지 선택기 컨트롤러 표시

    self.authorizeToAlbum { (authorized) in
        if authorized == true {
            let picker = UIImagePickerController()
            picker.delegate = self
            picker.allowsEditing = false
            picker.sourceType = .photoLibrary
    
            self.present(picker, animated: true, completion: nil)
        }
    }
    
  4. 핵심 단계는 딜러의 방법이 엄격하게 따라야 한다는 것입니다.

    // MARK: - UIImagePickerControllerDelegate Methods
    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
    if let pickedImage = info[UIImagePickerControllerOriginalImage] as? UIImage {
        self.pickedImage = pickedImage
        if let finalImage = handleImage(originalImage: self.pickedImage!, maskImage: self.maskImage!) {
            self.imageView.image = finalImage
        }
    }
    
    dismiss(animated: true, completion: nil)
    }
    

이것이 제가 한 일이고 그것이 제 문제를 해결했습니다.

  • @objc 추가
  • 내부를 추가하다
  • 추가 _ imagePicker 전에
  • AnyObject가 아닌 Any를 사용하는지 확인합니다.

이것이 도움이 되길 바랍니다!

제 경우 사용자가 이미지에 대한 액세스를 허용했는지 여부를 먼저 확인하지 않고 이미지 선택기 컨트롤러를 표시했기 때문에 이 오류가 발생했습니다.제 코드의 다른 곳에서는 사용자가 권한을 부여했기 때문에 제가 해야 할 일은 사진을 가져오는 것이었습니다.그러나 앱에서 해당 시점에서 '권한을 부여하지 않았을 수도' 있으므로 이미지 피커 컨트롤러를 제시하기 직전에 이를 추가하여 문제를 해결했습니다(사진 가져오기도).

// request photos permission if permission has not been granted
    if PHPhotoLibrary.authorizationStatus() != PHAuthorizationStatus.authorized {
        PHPhotoLibrary.requestAuthorization({ (status: PHAuthorizationStatus) in

        })
    }

이 답변이 불필요한 것 같으면 죄송합니다만, 해결책을 실행하기 위해 몇 가지 다른 답변을 종합해야 했습니다.아마도 이것은 스위프트 4를 사용하는 다른 사람에게 도움이 될 것입니다.

이 코드를 사용합니다.

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [UIImagePickerController.InfoKey : Any])

이 "Error Domain=PlugInKit Code=13" 오류는 유해하지 않은 애플 디버그 메시지인 것처럼 보이지만 많은 사람들을 혼란스럽게 했습니다.UI에 설정하기 위해 선택한 이미지를 가져오는 데 어려움을 겪었고 오류가 문제라고 생각했지만 좀 더 미묘한 문제였습니다.

이미지 선택기 컨트롤러가 이미지를 표시하는 보기 컨트롤러와 별도의 파일에 있습니다.

MyViewController.swift

class MyViewController: UIViewController {
    @IBOutlet weak var profileImage: UIImageView!

    ...
}

extension MyViewController: ImagePickerDelegate {
    func didSelect(image: UIImage?) {
        self.profileImage.image = image
    }
}

ImagePicker.swift

open class ImagePicker: NSObject {
    ...
    private func pickerController(_ controller: UIImagePickerController, didSelect image: UIImage?) {
        controller.dismiss(animated: true, completion: {self.delegate?.didSelect(image: image)}
        )
    }
}

대부분의 튜토리얼과 답변은 완료가 0으로 설정되어 있습니다.그러나 완료를 0으로 설정하고 대리자의 didSelect 메서드를 별도로 호출하면 메서드가 호출되지만 이미지가 설정되지 않으므로 dismiss' completion을 사용해야 합니다.

다시 한 번 말씀드리지만, 이 답변이 원래 질문과 직접적인 관련이 없을 수도 있다는 것을 알고 있지만, 이 문제로 많은 사람들이 여기에 오고 있고 주어진 해결책이 도움이 되지 않고 있다는 느낌이 듭니다.그 이유는 답변을 제공하는 대부분의 사용자가 기본 보기 컨트롤러와 동일한 클래스의 이미지 선택기 컨트롤러를 가지고 있기 때문에 완료를 사용할 필요가 없기 때문입니다.

오류는 사진 라이브러리의 사용 권한을 구성하지 않은 경우에도 발생합니다.Info.plistjava.

추가해야 .Privacy - Photo Library Usage Description에 시대에Info.plist사용자의 사진 라이브러리에 처음 액세스할 때 나타나는 문자열로 표시됩니다.

결승전Info.plist조정은 다음과 같이 되어야 합니다.

동일한 오류가 있으며 다음과 같은 방법으로 수정했습니다.

다른 방식으로 이미지 개체 가져오기는 UI에 따라 다릅니다.ImagePickerController allowedEditing is true 또는 false

func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

    if isImagePickerAllowEditing {
        sourceImage = info[UIImagePickerControllerEditedImage] as? UIImage
    } else {
        sourceImage = info[UIImagePickerControllerOriginalImage] as? UIImage
    }

    ....

}

그리고 물론 위의 코멘트와 같이 사진 라이브러리에 대한 접근 허가를 먼저 요청하십시오.

쪽에서 ㅠㅠㅠㅠUINavigationControllerDelegate대리자가 없습니다.

class YourViewController:UIViewController, UIImagePickerControllerDelegate, UINavigationControllerDelegate

저의 경우 빠른 할당 메모리 관리는 Apple Team에 의해 최적화되고 수정되는 것 같습니다.신속한 업데이트가 이루어질 때까지 코드가 완벽하게 작동했으며 "실수"는 피커를 보유하고 있지 않았지만 오랫동안 보유하지 않고 작동했기 때문에 솔루션을 완벽하게 사용할 수 있다는 것입니다.

// Add Privacy - Photo Library Usage Description to your info.plist
<key>NSPhotoLibraryUsageDescription</key>
<string>APPNAME need to access your pictures to violate your privacy :P</string>

그리고.

import Photos    
class MyImageSelector: UIViewController,UIImagePickerControllerDelegate,UINavigationControllerDelegate {

    var picker = UIImagePickerController() 
    // Make sure to retain this picker var until the picker returned

    func checkPermission() {
        let call = self.presentAuthorized

            let photoAuthorizationStatus = PHPhotoLibrary.authorizationStatus()
            switch photoAuthorizationStatus {
            case .authorized:
                print("Access is granted by user")
                showPicker()
            case .notDetermined:
                PHPhotoLibrary.requestAuthorization({ newStatus in
                print("status is \(newStatus)")
                if newStatus == PHAuthorizationStatus.authorized {
                    /* do stuff here */
                    print("success")
                    showPicker()
                }
                })
            case .restricted:
                print("User do not have access to photo album.")
            case .denied:
                print("User has denied the permission.")
            }

    }

    func showPicker() {
        picker = UIImagePickerController()
        picker.allowsEditing = true
        picker.sourceType = .photoLibrary
        picker.delegate = self  //Don't forget this line!
        self.present(picker, animated: true, completion: nil)
    }

    @objc public func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        // DO something with picture
    }

    @objc public func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        // User cancelled the pick
    }
}

저도 같은 문제를 발견했습니다.위에 언급된 제안 중 어떤 것도 저에게 효과가 없었습니다.하지만 저는 picker.dismiss를 명시적으로 호출하여 해결했습니다.제가 왜 그렇게 해고 통보를 했는지는 잘 모르겠지만, 그것은 저에게 효과가 있었습니다.

   @objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

        print("Image picked")
        picker.dismiss(animated: true, completion: nil)
        dismiss(animated: true) {
            print("dismissed")
             self.delegate?.presentEditor(img: (info[UIImagePickerControllerOriginalImage] as? UIImage)!, id: self.id!)
    }

}

저는 이 모든 답변을 읽었고 여기서 약간 수정되었고 무시할 필요가 없었습니다. 이것은 저에게 효과가 있었습니다. 여기에 답변해주신 다른 분들께 감사드립니다.

    @objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {

      print("########### media picked")
      picker.dismiss(animated: true, completion: nil)
      let img = (info[UIImagePickerControllerOriginalImage] as? UIImage)!
      //set img -picked image to "profileImage" UIimageView
      //use image here
       self.profileImage.image = img
       }
    }

IMAGE PickerView 솔루션을 찾았습니다...

@IBOutlet weak var myImageView: UIImageView!

var imagePicker = UIImagePickerController()


  @IBAction func selectImage(_ sender: Any) {

        let myPickerController = UIImagePickerController()
        myPickerController.delegate = self;
        myPickerController.sourceType = UIImagePickerControllerSourceType.photoLibrary

        self.present(myPickerController, animated: true, completion: nil)

    }

    func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
        print(info)

        var selectedImageFromPicker: UIImage?

        if let editedImage = info["UIImagePickerControllerEditedImage"] as? UIImage
        {
            selectedImageFromPicker = editedImage as! UIImage


        }else if let originalImage = info["UIImagePickerControllerOriginalImage"] as? UIImage{

            selectedImageFromPicker = originalImage as! UIImage


        }

        dismiss(animated: true, completion: nil)

        if var selectedImage = selectedImageFromPicker
        {
            myImageView.image = selectedImage
        }

    }

    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        picker.dismiss(animated: true, completion: nil)
    }

사진 라이브러리에서 이미지를 로드하고 동일한 이미지 보기에 미리 보기를 표시하려면 imageView(이미지 보기)를 클릭합니다.빠른 4시에

 let imagePicker = UIImagePickerController()
        @IBOutlet weak var userImage: UIImageView! 

     override func viewDidLoad() {
                super.viewDidLoad()
                 imagePicker.delegate = self
                let tap = UITapGestureRecognizer(target: self, action: #selector(SignUpViewController.click))
                userImage.addGestureRecognizer(tap)
                userImage.isUserInteractionEnabled = true
            }

            @objc func click()
            {
                imagePicker.allowsEditing = false
                imagePicker.sourceType = .photoLibrary
                present(imagePicker, animated: true, completion: nil)
            }


            @objc func imagePickerController(_ picker: UIImagePickerController, didFinishPickingMediaWithInfo info: [String : Any]) {
                if  let chosenImage = info[UIImagePickerControllerOriginalImage] as? UIImage{
                userImage.contentMode = .scaleAspectFit
                userImage.image = chosenImage
                }
                dismiss(animated: true, completion: nil)
            }

            func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
                dismiss(animated: true, completion: nil)
            }

언급URL : https://stackoverflow.com/questions/44465904/photopicker-discovery-error-error-domain-pluginkit-code-13

반응형