解决IOS8上无法创建同名删除相册的问题

90MB手机端VLM实战:轻量化多模态模型部署指南 视觉语言模型(VLM)作为多模态AI的核心范式,正从云端服务器加速向终端设备下沉。其技术本质是视觉编码器与语言解码器通过跨模态对齐实现图文联合表征,关键挑战在于算力受限、内存带宽紧张与功耗敏感三大约束。轻量化并非简单压缩,而是围绕参数量、计算图结构与精度配置展开的系统性工程——包括视觉主干替换(如MobileViTv2)、语言模型蒸馏(TinyLLaMA)、融合机制重构(GMU门控单元)及分层混合量化(INT4/INT8/FP16协同)。该技术路径显著提升端侧推理效率与隐私安全性,广泛适用于无障碍辅助、工业 阅读详情

在IOS上,如果用ALAssertLibrary创建相册,如果该相册被删除过了,则再次创建,会创建成功,但是group为nil

[self addAssetsGroupAlbumWithName:albumName

                                                          resultBlock:^(ALAssetsGroup *group) {

                                                              

                                                              //get the photo's instance

                                                              [weakSelf assetForURL: assetURL

                                                                        resultBlock:^(ALAsset *asset) {

                                                                            

                                                                            //add photo to the newly created album

                                                                            [group addAsset: asset];

                                                                            

                                                                            //call the completion block

                                                                            completionBlock(nil);

                                                                            

                                                                        } failureBlock: completionBlock];

                                                              

                                                          } failureBlock: completionBlock];

在苹果的官方文档中,有一段说明,大概意思就是IOS8之后使用了新的库PHPhotoLibrary代替ALAssetsLibrary。

导入库Photo.framework,此时注意修改后面的选项为option,否则你的应用就必须支持IOS8以及以上了。

IOS8 创建相册

                                    [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{

                                        [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:albumName];

                                    } completionHandler:^(BOOL success, NSError *error) {

                                            } failureBlock:completionBlock];

                                        }

                                      

                                    }];


//下面是修改ALAssetsLibrary+CustomPhotoAlbum 的代码,兼容IOS8,在外调用依旧不变

-(void)addAssetURL:(NSURL*)assetURL toAlbum:(NSString*)albumName withCompletionBlock:(SaveImageCompletion)completionBlock

{

    __block BOOL albumWasFound = NO;

    

    //search all photo albums in the library

    [self enumerateGroupsWithTypes:ALAssetsGroupAlbum 

                        usingBlock:^(ALAssetsGroup *group, BOOL *stop) {


                            //compare the names of the albums

                            if ([albumName compare: [group valueForProperty:ALAssetsGroupPropertyName]]==NSOrderedSame) {

                                

                                //target album is found

                                albumWasFound = YES;

                                

                                //get a hold of the photo's asset instance

                                [self assetForURL: assetURL 

                                      resultBlock:^(ALAsset *asset) {

                                                  

                                          //add photo to the target album

                                          [group addAsset: asset];

                                          

                                          //run the completion block

                                          completionBlock(nil);

                                          

                                      } failureBlock: completionBlock];


                                //album was found, bail out of the method

                                return;

                            }

                            

                            if (group==nil && albumWasFound==NO) {

                                //photo albums are over, target album does not exist, thus create it

                                /*

                                 (在 iOS 8.0 后, 使用the Photos framework 代替 the Assets Library framework ,

                                 The Photos framework 提供更特色和更好的表现 在使用 photo library 工作的时候)

                                  iOS 8.0 之后, 相册新增了 Recently Deleted (最近删除) 这个功能, 导致我们在相册里边手动删除 "Rd"相册 是并没有完全删除, 导致创建相册虽然成功, 但却为 nil ,

                                 因为创建的相册还是处于 Recently Deleted 的状态;

                                 */

                                if (IS_IOS_8) {

                                    __weak ALAssetsLibrary* weakSelf = self;

                                    [[PHPhotoLibrary sharedPhotoLibrary] performChanges:^{

                                        [PHAssetCollectionChangeRequest creationRequestForAssetCollectionWithTitle:albumName];

                                    } completionHandler:^(BOOL success, NSError *error) {

                                        if (success) {

                                            [weakSelf enumerateGroupsWithTypes:ALAssetsGroupAlbum usingBlock:^(ALAssetsGroup *group, BOOL *stop) {

                                                if ([albumName compare: [group valueForProperty:ALAssetsGroupPropertyName]]==NSOrderedSame) {

                                                    [weakSelf assetForURL: assetURL

                                                          resultBlock:^(ALAsset *asset) {

                                                              

                                                              //add photo to the target album

                                                              [group addAsset: asset];

                                                              

                                                              //run the completion block

                                                              [self performSelectorOnMainThread:@selector(saveCompletionSuccess:) withObject:completionBlock waitUntilDone:YES];

                                                              

                                                          } failureBlock: completionBlock];

                                                }

                                            } failureBlock:completionBlock];

                                  

                                        }

                                      

                                    }];

                                }else{

                                    

                                    __weak ALAssetsLibrary* weakSelf = self;

                                    //create new assets album

                                    [self addAssetsGroupAlbumWithName:albumName

                                                          resultBlock:^(ALAssetsGroup *group) {

                                                              

                                                              //get the photo's instance

                                                              [weakSelf assetForURL: assetURL

                                                                        resultBlock:^(ALAsset *asset) {

                                                                            

                                                                            //add photo to the newly created album

                                                                            [group addAsset: asset];

                                                                            

                                                                            //call the completion block

                                                                            completionBlock(nil);

                                                                            

                                                                        } failureBlock: completionBlock];

                                                              

                                                          } failureBlock: completionBlock];

                                    

                                    //should be the last iteration anyway, but just in case

                                    return;

                                }

                                }

                    

                            

                        } failureBlock: completionBlock];

    

}



原文出处:http://blog.youkuaiyun.com/wangchenggggdn/article/details/46532931


iOS 保存录制视频到相册 ALAssetsLibrary-CustomPhotoAlbum-dev ALAssetsLibrary+CustomPhotoAlbum 是 ALAssetsLibrary 的分类,用以保存图像和视频到相册中。 立即下载

相关推荐

COMSOL实战:薄膜声学超材料模态分析全流程解析(含预应力设置技巧)

本文详细解析了使用COMSOL进行薄膜声学超材料模态分析的全流程,包括预应力设置技巧和共振频率优化方法。通过实际案例和参数设置指南,帮助工程师掌握从几何建模到结果解读的关键步骤,特别适合声学超材料和共振薄膜结构的设计与优化。

ujm5678901的博客 292

ALAssetsLibrary-CustomPhotoAlbum 使用教程

ALAssetsLibrary-CustomPhotoAlbum 使用教程 项目介绍 ALAssetsLibrary-CustomPhotoAlbum 是一个用于 iOS 的开源项目,它提供了一个 ALAssetsLibrary 的类别,用于将图片和视频保存到自定义相册中。该项目由 Kjuly 开发,支持 iOS 5 及以上版本。通过使用这个类别,开发者可以轻松地将媒体文件保存到用户指定的相册中,...

gitblog_00083的博客 736

vue3+element-plus - 最新详细实现将表格Table组件 “所见所得导出“ 为excel(xls/xlsx)电子表格文件,表格中的图片图像、图标等媒体资源完美导出显示(详细示例代码)

vue3,nuxt3,element plus,表格组件,Table,el-table,导出,下载,excel,电子工作簿,xls,xlsx,将表格导出成xls,如何把表格原封不动的导出成excel,保留图片,带图片,图标,如何导出包括含有图片的Excel表格,图片和表格数据导出excel,把表格导出成excel格式,表格内的图片一起导出,vue3导出图片和数据到Excel,可导出图片,导出图像到Excel,网页上的图片怎么能导出到xls表格中,显示图片url链接,图片太多导出失败,图片会超出单元格,图片不

✅ 精选推荐文章 4766

【ARM CoreLink 系列 4 -- NIC-400 控制器详细介绍】

正常情况下,一个NIC的实现,可以包含一百多个master和几十个slave,每个master和每个slave都会有一些寄存器,这些寄存器可以被 programming,实际实践中就会对 AMIB 或者 ASIB 或者 IB,当它需要具有 programming的时候,给它指定一个node number。为什么指定Node Number呢?首先,从CPU的角度,它需要有一个1M对齐的地址空间,在这1M地址空间上,对每个ASIB或者AMIB这样的接口给它一个node number以后,

CodingCos的博客 5240

delphi fmx android 自动更新(一)

所以,如果是http 则,manifest.xml application 下,https无需添加。增加android:usesCleartextTraffic="true",不然无法使用http下载东西。1,REQUEST_INSTALL_PACKAGES 权限。4,WRITE_EXTERNAL_STORAGE 权限。3,READ_EXTERNAL_STORAGE 权限。一般是从http下载安装包 apk。2,INTERNET 权限。sFile为apk包路径。

全粘工程师 550

ALAssetsLibrary---保存照片到指定相册

经常我们会把程序中的照片保存到指定相册中 保存到系统相册 ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init]; [assetsLibrary writeImageDataToSavedPhotosAlbum:imageData metadata:nil completionBlock:^(NSURL *assetU

Nero的专栏 3087

仿真模型简单介绍

同时,各种以伯克利的Spice仿真程序的算法为核心的商用Spice电路仿真工具也随之产生,运行在PC和UNIX平台,许多都是基于原始的SPICE2G6版的源代码,这是一个公开发表的版本,它们都在Spice的基础上做了很多实用化的工作,比较常见的Spice仿真软件有HSpice、Pspice、Spectre、Tspice、SmartSpcie、IsSpice等,虽然它们的核心算法雷同,但仿真速度、精度和收敛性却不一样,其中以Synopsys公司的Hspice和Cadence公司的Pspice最为著名。...

小幽余生不加糖 8001

iOS保存图片到新建相册(iOS Photos)

1.直接保存图片相册中(不需要自己创建新的相簿) - (void)saveImage2Photo:(UIImage *)img { UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:),nil); } - (void)image:(UII

木木不 5793

华为OD机考双机位C卷 - 最左侧冗余覆盖子串 (Java)

华为OD机考双机位C卷 - 最左侧冗余覆盖子串 (Java), 提供Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。

算法大师! 58

基于生存结局(生存分析/COX回归)的中介效应分析

① 建立观察变量OVB和中介变量MVB的回归模型(注意:这里根据mediation包的介绍,需要构建的是probit模型,而不是logist回归模型,网上有很多的代码用的logistic回归,结果自己跑的时候发现报错,我在这里陷了很久;为了方便演示,我们生成了一个协变量(Age)、一个连续型观察变量(liaOVC)、一个二分类观察变量(OVB)、一个连续型中介变量(MVC)、一个二分类中介变量(MVB)以及最后的结局变量(生存时间[time],生存结局[stats])。

m0_61863309的博客 1万+

解决iOS8.0以上系统下无法通过代码创建被删除过的同名相册 ( iOS 8 Photos framework: Create a albums with iOS8 )

问题描述: 在苹果的 iOS8.0以上, 当你创建完一个相册, 例如名为"Rd", 然后在相册中手动删除了这个"Rd"相册, 再次通过代码 #import ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init];

--------→成人不自在,自在不成人℃ ------------ 4939

层层剖析,让你彻底搞懂Self-Attention、MultiHead-Attention和Masked-Attention的机制和原理

本文内容 本文基于李宏毅老师对 Self-Attention 的讲解,进行理解和补充,并结合Pytorch代码,最终目的是使得自己和各位读者更好的理解Self-Attention 李宏毅Self-Attention链接: https://www.youtube.com/watch?v=hYdO9CscNes PPT链接见视频下方 通过本文的阅读,你可以获得以下知识: 什么是Self-Attention,为什么要用Self-Attention? Self-Attention是如何做的? Self-Atten

iioSnail的博客 2万+

解决iOS8下ALAssetsLibrary创建相册的bug

说到ALAssetsLibrary,相信搞iOS开发的大都知道它,在iOS上做过相册相关功能的应该对这个都比较熟悉了,用它来操作访问相册是很方便的。但是,,,,自从iOS8发布后,ALAssetsLibrary在Stack Overflow上被各种讨论了。因为在iOS8上用这个库创建相册会有个bug:创建相册,手动删除它,再用这个库去创建刚被删除的相册,这个时候方法回调是不会跑fail模块的,它走

JerryChen的专栏 5392

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

iOS 无法创建名字跟已删除相册同名的相册问题

在IOS上,如果用ALAssertLibrary创建相册,如果该相册被删除过了,则再次创建,会创建成功,但是group为nil [self addAssetsGroupAlbumWithName:albumName                                                           resultBlock:^(ALAssetsGr

dongtinghong的专栏 828

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

解决iOS8.0以上系统下无法通过代码创建被删除过的同名相册 ( iOS 8 Photos framework: Create a albums with iOS8 )...

问题描述: 在苹果的 iOS8.0以上, 当你创建完一个相册, 例如名为"Rd", 然后在相册中手动删除了这个"Rd"相册, 再次通过代码 #import <AssetsLibrary/ALAssetsLibrary.h> ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init]; ...

weixin_30716725的博客 155

iOS8使用ALAssetsLibrar创建单独文件夹方法以及删除文件夹闪退的bug

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33908217的博客 154

ALAssetsGroup failed to add asset: 错误 IOS8

IOS8删除相册后,在写入到同名相册会产生下面这样的错误 Error Domain=LIB_ALAssetsLibrary_CustomPhotoAlbum Code=0 "ALAssetsGroup failed to add asset: ALAsset - Type:Photo, URLs:assets-library://asset/asset.PNG?id=34FFE0D1-08B

leonpengweicn的专栏 2605

整理UIImagePickerController、保存图片到相册问题

//此方法在ios8.0系统上,之前用代码创建的相册,手动删除它,再用这个库去创建刚被删除的相册,这个时候方法回调是不会跑fail模块的,它走的是正常流程,但是带回来的group却是nil造成崩溃原因 ALAssetsLibrary *assetsLibrary = [[ALAssetsLibrary alloc] init]; [assetsLibrary addAssetsGroupA...

weixin_34191734的博客 320

immich数据迁移:从其他平台无缝转移

在开始数据迁移前,请确保已完成Immich的基础安装与配置。Immich作为自主托管的照片和视频备份解决方案,支持通过手机端直接操作数据迁移流程。官方推荐使用最新版本的移动应用以获得完整的迁移功能,可通过[移动端应用文档](https://link.gitcode.com/i/fb76bc7c6cfc404925fec364381265fd)了解详细安装步骤。 ### 系统环境要求 - 服务器端...

gitblog_00147的博客 1083

安卓如何从图片路径中得到宽高_一款公认的图片去重/相似图片清理利器

昨天有群友问阿虚是怎么样给图片去重的一个文件夹里图片少的时候靠记性是能去除的,但像昨天阿虚分享那么多表情包肯定不可能完全手动啊。阿虚靠的是下面这款神器。1、Duplicate CleanerDuplicate Cleaner是Windows软件,几乎可以说是Windows上最好的图片去重软件了。先介绍Windows端的,下文还有介绍手机端软件(安卓/IOS)如何使用呢,阿虚简单写个教程。1.1 新...

weixin_39669701的博客 689

微信聊天记录恢复全攻略:从数据存储原理到5种实战方法

数据恢复是数字时代的关键技能,其核心原理基于存储介质的数据删除逻辑——删除操作通常只是标记存储空间为可覆盖状态,而非立即物理擦除。这项技术的价值在于能够挽回因误操作、系统故障或设备更换导致的宝贵数据损失,广泛应用于个人数字资产管理、企业文档保全与电子取证等场景。理解本地缓存、备份与云端同步的多层存储机制,是有效实施恢复的前提。针对微信聊天记录这一高频需求,本文聚焦数据恢复与备份策略,系统梳理了从利用官方备份工具到借助专业软件扫描的完整解决方案,帮助用户在数据意外丢失时,建立清晰的操作路径与合理的预期。

weixin_33725807的博客 322

苹果手机照片去背景怎么操作?2026年最全工具对比指南

2026年了,照片去背景早已不是什么高端操作。如果你用iPhone,系统自带功能能解决一些基础需求。但要我说,真正高效的方案是用微信小程序抠图喵——简单快速,1-2秒搞定,还完全免费无限制。我这两年用下来,从来没遇到过什么坑,隐私保护也做得很到位。关键是它的易用性真的打败了我用过的90%的工具。与其花时间研究那些复杂的桌面软件,不如用抠图喵的3步方案,把时间省下来干更有意义的事。有问题记得在微信里搜索"抠图喵"小程序,认准是微信官方小程序,不要被其他同名应用迷惑就行。

asyncs的博客 326

2026苹果手机照片抠图方法+自带快捷键,保姆级教程一看就会

说了这么多,到底选哪个?按你的情况对号入座就行:普通用户日常抠图(换头像、抠商品、抠宠物、换背景)→ 直接用抠图喵,免下载、3 步搞定,发丝级精度还零水印,是最方便的选择;证件照换底、做标准规格照 → 用立得一寸照,抠图、换底、套规格一条龙,不用专门跑照相馆;只想临时抠一个主体发给别人 → 用苹果手机自带的长按提取功能,最快捷,但复杂背景和换底还是交给抠图喵更稳;偶尔在电脑浏览器处理 → 可以试试 Remove、佐糖这类在线网站;本来就爱修图 → 醒图、美图秀秀这类 APP 顺手;

GYRYIJF的博客 51
上一篇: app 首次启动
下一篇: Xcode7 使用动态链接库
sandy_shell
博客等级 码龄15年 17粉丝 34原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值