2017-03-05 1 views
2

Je fais donc le sélecteur d'image très simple que j'ai écrit des centaines de fois. Pour cela j'ai écrit cette très simple extension:UIImagePickerController Crash dans iOS 10.3 lors de la sélection de la vidéo

extension UIImagePickerController { 

    func present(over controller: UIViewController, 
       with source: UIImagePickerControllerSourceType, 
       mediaTypes: [String]? = nil) { 

     DispatchQueue.main.async { 
      self.allowsEditing = true 
      self.sourceType = source 
      if source == .camera { 
       self.cameraDevice = .front 
      } 
      self.modalPresentationStyle = .popover 
      self.mediaTypes = mediaTypes ?? UIImagePickerController.availableMediaTypes(for: source) ?? [] 
      controller.present(self, animated: true, completion: nil) 
     } 
    } 
} 

Et cela fonctionne parfaitement. C'est bien sûr jusqu'à ce que vous sélectionniez une vidéo. Dès que vous sélectionnez une vidéo je reçois cette beauté d'une trace de la pile:

BEAUTIFUL!!!!!

Et avant de vous demander. Oui, je l'ai mis en place tous les paramètres de confidentialité dans mon Info.plist:

NSPhotoLibraryUsageDescription NSMicrophoneUsageDescription NSCameraUsageDescription

Serait-ce un problème de Beta 10.3? Je l'espère;) Non

EDIT: Je réussi à tester cela sur un autre appareil et il n'a rien à voir avec la version bêta.

Jusqu'à présent mes meilleurs prétendants sont:

  • Je visse quelque chose (grande possibilité)
  • Quelque chose d'autre (une dépendance, peut-être) enregistre pour la mauvaise notification
+0

Eh bien, le moyen facile de savoir si c'est un problème 10.3 est de l'essayer sur quelque chose qui tourne sur une version iOS non-bêta. Es-tu capable de? – dfd

+0

@dfd pas sans déclassement. Je n'ai qu'un seul appareil à portée de main. Et je veux que sur la version bêta d'utiliser Swift 3.1 ... Je voulais juste voir si quelqu'un avait ce problème avant de passer par la mise à niveau et la mise à niveau plus tard;) –

+0

J'ai réussi à obtenir un ami pour le tester et ce n'est pas beta related ... –

Répondre

1

After Hours et Heures j'ai trouvé le problème. Il s'avère que quelqu'un dans le projet pensé que ce serait une bonne idée d'écrire ceci:

 NotificationCenter.default.addObserver(forName: nil, 
      object: nil, 
      queue: nil) { note in 

       // Some strange code we were not using anymore 
       // Mainly logging all activity made as Notifications 
     } 

Il voulait juste bûches. qui semble jouer avec:

  • certaines C exceptions ++ dans AVPlayer
  • allant chercher AVAssets locaux avec une URL

Merci beaucoup de toute façon;)

Il est temps de mettre Git Blame en utilisation!