ios - UIImage 不保存到磁盘

标签 ios swift uiimage uipickerview archive

一切正常,但我添加了一些代码来将图像保存到磁盘,一旦拍摄,它似乎不起作用,也没有给我一个错误,有什么想法吗?

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
}

最佳答案

        UIImageWriteToSavedPhotosAlbum(newImage, nil, nil, nil)

改用这个,经过测试并且工作正常

关于ios - UIImage 不保存到磁盘,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32828012/

相关文章:

ios - 如何在 Swift 3 中将 captureStillImageAsynchronously(sampleBuffer) 转换为 base64 编码

iphone - 需要帮助查找崩溃原因

SwiftUI 视频播放器如何设置 url

ios - 从包含字符串数组的对象元素中过滤结构对象

ios - 如何在 SpriteKit 中为 physicsWorld 设置 contactDelegate?

由于内存问题,iOS 应用程序在加载 UIImage 时崩溃

ios - URL 中的 UIImage 需要太多时间才能显示

ios - UIScrollView iOS 应用中的动画

UIAlertView 上的 iOS 解析通知消息(空)

ios - 为什么从 FileManager 数据初始化的 UIImages 有错误的比例?