Tôi có một album hình ảnh được quản lý bởi máy chủ từ xa hay không. Tôi muốn cung cấp cho người dùng tùy chọn tải xuống album và lưu trữ album đó vào album tùy chỉnh trong Ảnh. Nhưng kể từ khi album là năng động (hình ảnh được thêm vào nó) người dùng có thể tải nó nhiều lần. Tôi không muốn tải xuống cùng một hình ảnh nhiều lần, chỉ những hình ảnh mới.Kiểm tra xem hình ảnh có tồn tại trong Ảnh
Có thể liên kết một số siêu dữ liệu (id duy nhất) khi tôi lưu trữ hình ảnh trong ứng dụng Ảnh không? Và sau đó kiểm tra xem hình ảnh đó đã tồn tại chưa?
Tôi đang sử dụng Khung ảnh để tạo album tùy chỉnh và lưu ảnh.
Edit: Đây là mã của tôi để tạo album tùy chỉnh và lưu các ảnh
/** Returns the first album from the photos app with the specified name. */
static func getAlbumWithName(name: String, completion: (album: PHAssetCollection?) -> Void) {
let fetchOptions = PHFetchOptions()
fetchOptions.predicate = NSPredicate(format: "localizedTitle = %@", name)
let fetchResult = PHAssetCollection.fetchAssetCollectionsWithType(PHAssetCollectionType.Album, subtype: PHAssetCollectionSubtype.Any, options: fetchOptions)
if fetchResult.count > 0 {
guard let album = fetchResult.firstObject as? PHAssetCollection else {return}
completion(album: album)
} else {
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
PHAssetCollectionChangeRequest.creationRequestForAssetCollectionWithTitle(name)
}, completionHandler: { (result, error) in
if result {
FileUtils.getAlbumWithName(name, completion: completion)
} else {
completion(album: nil)
}
})
}
}
/** Adds an image to the specified photos app album */
private static func addImage(image: UIImage, toAlbum album: PHAssetCollection, completion: ((status: Bool) -> Void)?) {
PHPhotoLibrary.sharedPhotoLibrary().performChanges({
let assetRequest = PHAssetChangeRequest.creationRequestForAssetFromImage(image)
let assetPlaceholder = assetRequest.placeholderForCreatedAsset
let albumChangeRequest = PHAssetCollectionChangeRequest(forAssetCollection: album)
albumChangeRequest?.addAssets([assetPlaceholder!])
}) { (status, error) in
completion?(status: status)
}
}
có thể hữu ích khi chỉnh sửa câu hỏi của bạn để hiển thị mã về cách bạn tải xuống và lưu ảnh vào album tùy chỉnh này –