我目前正在开发一个项目,要求将拍摄的照片保存在照片库中。我使用以下代码实现了这一点:
self.library = [[ALAssetsLibrary alloc] init];
[self.library saveImage:imgResult toAlbum:bundleIDForAlbum withCompletionBlock:^(NSError *error) {
if (error!=nil) {
NSLog(@"Big error: %@", [error description]);
}
}];
但是如果图像已经存在,我不想将它保存到库中。
喜欢 -
if( ! [self checkIfImageExists])
{
self.library = [[ALAssetsLibrary alloc] init];
[self.library saveImage:imgResult toAlbum:bundleIDForAlbum withCompletionBlock:^(NSError *error) {
if (error!=nil) {
NSLog(@"Big error: %@", [error description]);
}
}];
}
编写方法定义 -
-(BOOL) checkIfImageExists
{
//What do I do here???
}
请参阅:我正在寻找一种智能解决方案,而不是通过将其写入具有名称的本地文件来保留记录,并保留另一条记录,以检查哪个文件名已保存到库中
修改
图像由UIImagePickerController中的一个填充,然后单击Done Button保存。
如果用户查看并添加了一个图像,则有4个已保存的图像。一个是新的。我现在只想将新的一个保存到库中。
答案 0 :(得分:1)
我认为,这是不可能的。
您可以尝试的一件事是,使用SHA-1,它呈现为十六进制数字,文件长度为40位。或者,您可以使用MD5。
创建imgResult
的SHA-1表示,然后枚举所有照片库图像并为每个图像创建SHA-1表示进行比较。
我没有充分的希望,因为与Photo-library图像一起保存的位置,时间和其他元数据将更改二进制文件内容,并将SHA-1结果更改为同一图像。< / p>