2015-09-28 1 views
0

Все работает отлично, но я добавил код для сохранения изображения на диск, после его снятия и не работает, не дает мне никаких ошибок, никаких идей?UIImage не сохраняет на диск

func importPicture(action: UIAlertAction! = nil) { 

    let picker = UIImagePickerController() 
    picker.allowsEditing = true 
    picker.sourceType = .Camera 
    picker.delegate = self 
    presentViewController(picker, animated: true, completion: nil) 
} 


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

    let _ = info[UIImagePickerControllerMediaType] as! NSString 
    var newImage: UIImage 

    if let possibleImage = info["UIImagePickerControllerEditedImage"] as? UIImage { 
     newImage = possibleImage 
    } else if let possibleImage = info["UIImagePickerControllerOriginalImage"] as? UIImage { 
     newImage = possibleImage 
    } else { 
     return 
    } 

    let imageName = NSUUID().UUIDString 
    let imagePath =   getDocumentsDirectory().stringByAppendingPathComponent(imageName) 

    if let jpegData = UIImageJPEGRepresentation(newImage, 80) { 
     jpegData.writeToFile(imagePath, atomically: true) 

    } 

    dismissViewControllerAnimated(true, completion: nil) 

    images.insert(newImage, atIndex: 0) 
    collectionView.reloadData() 

    if mcSession.connectedPeers.count > 0 { 
     let imageData = UIImagePNGRepresentation(newImage) 
     var error: NSError? 
     do { 
      try mcSession.sendData(imageData!, toPeers: mcSession.connectedPeers, withMode: .Reliable) 
     } 
     catch let error1 as NSError { 
      error = error1 
     } 

     if error != nil { 
      let ac = UIAlertController(title: "Send error", message:  error!.localizedDescription, preferredStyle: .Alert) 
      ac.addAction(UIAlertAction(title: "OK", style: .Default, handler: nil)) 
      presentViewController(ac, animated: true, completion: nil) 
     } 
    } 
} 

func getDocumentsDirectory() -> NSString { 


    let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true) 
    let documentsDirectory = paths[0] 
    return documentsDirectory 
} 
+3

Вы проверили каталог Документы для сохранения файлов? Откуда вы знаете, что это не работает? – kirander

+2

Используйте версию writeToFile с сообщением об ошибках: 'func writeToFile (_ path: String, options writeOptionsMask: NSDataWritingOptions) бросает и обрабатывает/сообщает о любых ошибках. Если 'UIImageJPEGRepresentation' не работает, отчет об обработке ошибок отсутствует. Вам необходимо реализовать всю обработку ошибок, чтобы вы знали, когда и где возникают проблемы. – zaph

+0

Попробуйте использовать другой способ генерации имени файла. генератор последовательности или просто timeStamp + .jpg –

ответ

0
 UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil) 

Используется это вместо того, чтобы, протестирована и работает отлично

 Смежные вопросы

  • Нет связанных вопросов^_^