用名称或任何types的元数据保存照片

我有一个完整的应用程序,拍摄照片,并把它们放在自定义相册。 我可以命名每张专辑,我可以完美地检索所有的图像。 然而,我真正需要的是能够命名个别照片(或使用某种元数据),以便我可以在适当的时间在应用程序内显示它们。

我知道如果您将照片存储在应用程序的文档目录中,则可以完成此操作,但是我不得不离开该设备并使用设备的照片库。

有没有人有任何想法如何做到这一点?

PS。 我正在使用Objective-C而不是SWIFT。

你可以用两种方法来做到这一点:

1-将照片保存在临时目录中。 例:

var fileManager = NSFileManager() var tmpDir = NSTemporaryDirectory() let filename = "YourImageName.png" let path = tmpDir.stringByAppendingPathComponent(filename) var error: NSError? let imageData = UIImagePNGRepresentation(YourImageView.image) fileManager.removeItemAtPath(path, error: nil) println(NSURL(fileURLWithPath: path)) if(imageData.writeToFile(path,atomically: true)){ println("Image saved.") }else{ println("Image not saved.") } 

2-使用照片框架进行保存。 例:

 if let image: UIImage = YourImageView.image let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT dispatch_async(dispatch_get_global_queue(priority, 0), { PHPhotoLibrary.sharedPhotoLibrary().performChanges({ let createAssetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(image) let assetPlaceholder = createAssetRequest.placeholderForCreatedAsset if let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: self.assetCollection, assets: self.photosAsset) { albumChangeRequest.addAssets([assetPlaceholder]) } }, completionHandler: {(success, error)in dispatch_async(dispatch_get_main_queue(), { NSLog("Adding Image to Library -> %@", (success ? "Sucess":"Error!")) }) }) }) } 

你可以检查这个项目的样本 。