Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >持久化图像阵列

持久化图像阵列
EN

Stack Overflow用户
提问于 2015-09-25 13:46:34
回答 2查看 642关注 0票数 2

我希望能够保存一个数组cardImages,该数组通过SwiftyUserDefaults包含UIImages。

期望行为

以下是我们所期望的行为:

通过UIImages库将一个NSUserDefaults数组保存到NSUserDefaults 稍后检索图像

代码这被简化为非常少的代码

代码语言:javascript
运行
AI代码解释
复制
    var newPhotoKey = DefaultsKey<NSArray>("image")//Setting up the SwiftyUserDefaults Persisted Array

        cardImages = [(UIImage(named: "MyImageName.jpg")!)] //This array contains the default value, and will fill up with more
        Defaults[theKeyForStoringThisArray] = cardImages //This is the persisted array in which the array full of images should be stored. WHERE THE ERROR HAPPENS

var arrayToRetreiveWith = Defaults[theKeyForStoringThisArray] as! [UIImage] //To Retreive

误差

我得到以下错误:

尝试将非属性列表对象( ",{300,300}“)设置为键图像*终止应用程序的NSUserDefaults/CFPreferences值,原因是:”尝试插入密钥图像的非属性列表对象( ",{300,300}“)

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-25 14:14:06

实际上,错误信息是明确的。UIImage不是属性列表,因此需要首先将其更改为行数据。我将在下面举个例子,但是FYI不推荐使用NSUserDefaults保存大数据,比如图像。我会使用NSFileManager并将其放在用户文档目录中。不管怎样,

代码语言:javascript
运行
AI代码解释
复制
var newPhotoKey = DefaultsKey<NSArray>("image")
cardImages = [(UIImage(named: "MyImageName.jpg")!)] 
var cardImagesRowdataArray: NSData = []
for image in cardImages {
    let imageData = UIImageJPEGRepresentation(image, 1.0)
    cardImagesRowdataArray.append(imageData)
}
Defaults[theKeyForStoringThisArray] = cardImagesRowdataArray 

var arrayToRetreiveWith = Defaults[theKeyForStoringThisArray] as! [NSData]
// here you can use UIImage(data: data) to get it back

如果您不坚持使用SwiftyUserDefaults,您可以将它保存在用户文档目录中,下面是如何做到的

代码语言:javascript
运行
AI代码解释
复制
func saveImage(image: UIImage){
    if let imageData = UIImageJPEGRepresentation(image, 1.0) {
         let manager = NSFileManager()
         if let docUrl = manager.URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first{
             let uniqueName = NSDate.timeIntervalSinceReferenceDate()
             let url = docUrl.URLByAppendingPathComponent("\(uniqueName).jpg")
             imageData.writeToURL(url, atomically: true)
         }
     }
 }
票数 3
EN

Stack Overflow用户

发布于 2015-09-25 14:12:17

用户默认值的值必须是属性列表。财产表

  • 字符串(StringNSString),
  • 一个NSData
  • 一个日期(NSDate),
  • 一个数字(NSNumber),
  • 布尔值(也是NSNumber),
  • 一个属性列表数组,
  • 或者一个字典,它的键是字符串,其值是属性列表。

UIImage不是这些,所以UIImage不是属性列表,也不能是属性列表的一部分。

您需要将图像转换为NSData以将其存储在用户默认情况下。由于UIImage除了包含原始像素数据外,还包含一些属性(如scaleimageOrientation),因此将UIImage转换为没有损失的NSData的最简单方法是创建存档

代码语言:javascript
运行
AI代码解释
复制
let cardImage: UIImage? = someImage()
let cardImageArchive: NSData = NSKeyedArchiver.archivedDataWithRootObject(cardImage!)

现在,您可以将cardImageArchive存储在一个更大的属性列表中,您可以将其存储为用户默认设置。

稍后,当您需要从数据重新创建图像时,请执行以下操作:

代码语言:javascript
运行
AI代码解释
复制
let cardImageArchive: NSData = dataFromUserDefaults()
let cardImage: UIImage = NSKeyedUnarchiver.unarchiveObjectWithData(cardImageArchive) as! UIImage
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32791104

复制
相关文章
脱单了!
推荐阅读: 《定了,安排!最后倒计时 1 天!》 《我上班没有被卷死,没想到自由职业反而被卷死了。。。》 1 重磅消息 今天,要跟大家宣布一个重磅消息! 我和星球的小伙伴,联合起来给大家送一个巨大的福利,用专业的知识来帮助我们程序员脱单。 为什么,我们要干这件事情呢? 给大家看看我公众号后台的用户数据,看完之后你就会明白,我们要做的这个事情是多有意义。 下图是纯洁的微笑公众号后台的用户性别分布,肉眼可见的是男性超过了 80% 以上。 再来看看年龄分布,一半以上的用户都在 26-35 的这个年龄段,正处
纯洁的微笑
2022/03/04
4090
2016 新年计划
本文遵守创作共享CC BY-NC-SA 4.0协议 网络平台如需转载必须与本人联系确认。
前端GoGoGo
2018/08/24
4610
有个小哥哥用机器学习帮自己脱单,结果。。。
滑铁卢大学一位叫 Bai Li 的华裔小哥哥,在 Medium 上分享了自己「如何用 ML 中的逻辑回归方法帮自己找脱单」的神操作。
HyperAI超神经
2019/11/30
5030
理工男用数学建模解锁“脱单攻略”,三天后就脱单了!!
重庆大学研究生刘群用数学建模得出脱单攻略,他通过数据分析、写公式代码等得出“女生对男生的好感度模型”,并在建模后成功脱单。
昱良
2020/02/20
4830
理工男用数学建模解锁“脱单攻略”,三天后就脱单了!!
业务变化快,有必要写单测吗?
在前面一篇文章(单测无用论,这是真的吗?)中,我提到判断单测是否适用的几个维度,其中有一个就是业务变化情况。理论上来说,业务变化快,改单测成本高,维护成本也高。按理说,如果不是对功能质量有很高的要求,感觉是可以不写单测的。
陈树义
2023/03/15
6050
业务变化快,有必要写单测吗?
还单身?不如来看看脱单神器!
今天小李在逛人类知识宝库时发现一个非常有意思的目,“CoupleGenerator”, 可以理解为伴侣生成器。哦也不对,单身的小伙伴不要想太多,国家不会分配,AI自然目前也是没法大变活人,给你分配对象的。
老肥码码码
2020/01/17
4530
还单身?不如来看看脱单神器!
七夕,乐享帮你的同事脱单!
----------------手动分割线-----------------      
腾讯乐享
2019/03/12
5310
七夕,乐享帮你的同事脱单!
叮!你要的Python脱单攻略已送达
年关将至,学妹却因为男朋友不愿意带她回家过年而难过,我劝学妹主动点,自己多提几次,但是学妹觉得身为女孩子不能太主动。
小小詹同学
2019/11/12
4780
叮!你要的Python脱单攻略已送达
年关将至,学妹却因为男朋友不愿意带她回家过年而难过,我劝学妹主动点,自己多提几次,但是学妹觉得身为女孩子不能太主动。
龙哥
2019/01/23
4610
叮!你要的Python脱单攻略已送达
帮你光速脱单!程序员找对象指南
上周末的时候,我把在知乎看到的一则关于相亲的回答转到了群里,没想到引起了非常大的关注以及共鸣。作为一个英年早婚的程序员,在这里写一点这些年以来的心路历程,希望可以帮助到各位憨厚耿直的程序员同行们,早日new出自己的对象。
TechFlow-承志
2021/02/08
8240
JMeter测试计划配置项解析
测试计划(Test Plan),是JMeter目录树的初始根节点,它的编辑区如下:
dongfanger
2021/04/12
5040
数据报告 : 原来中国最难脱单的省份是……
腾讯大数据
2017/08/21
1.7K0
数据报告 : 原来中国最难脱单的省份是……
程序员的脱单秘籍,我只告诉你!
因为你长得丑还不会打扮自己;因为你穷还不会拿着土豪金装13;因为你天生土鳖一枚还不会装大气睿智的绅士;因为你脑子里懂的都是岛国爱情动作片还不会装CBD的IT金领男……好吧,做达人这事不带强求的,但是咱不做达人,起码你得知道如何约会啊哥们!
用户1257393
2018/07/30
5170
程序员的脱单秘籍,我只告诉你!
情人节到了,Postman 都脱单了,那你咧?
通过它可以完成 Http 接口的调试,测试同学也可以基于此做一些自动化测试。另外 Postman 还提供其他高级功能,不过需要另外收费,毕竟商业公司还是要恰饭啊。
andyxh
2020/02/24
7381
PMPBOK6项目管理计划及其子计划
项目管理计划是说明项目执行、监控和收尾方式的一份文件,它整合并综合了所有子管理计划和基准,以及管理项目所需的其他信息。究竟需要哪些项目管理计划组件,取决于具体项目的需求。
菲宇
2019/06/13
1.3K0
PMPBOK6项目管理计划及其子计划
七夕,诺奖得主用算法教你如何脱单
素材来源:新浪博客 @能说好动爱生活的刺客 编辑:Emma 摘自:知象科技(微信ID: briphant) 知象科技授权转载,如需再次转载,请联系版权方。 七夕来袭,又到了情侣们大秀恩爱,单身狗们咬牙切齿的季节。本着人道主义关怀,先给大家唱一曲单身狗之歌—— 雌雄双兔傍地走,你还是条单身狗; 两个黄鹂鸣翠柳,你还是条单身狗; 路见不平一声吼,你还是条单身狗; 问君能有几多愁,你还是条单身狗。 听完是不是很想组个复仇者联盟,早上去卖花,晚上去卖套,凌晨去卖药? 还是你认为社会资源就这么多,拆散一对是一对,于是
大数据文摘
2018/05/21
9940
情人节脱单必备,程序员如何花式表白?
每到情人节,脑洞大开的程序员们就纷纷出动,想出了各种别出心裁的表白代码。虽然结局不一定美好,但这些也是一种撩妹手段。
AI科技大本营
2019/03/06
8960
情人节脱单必备,程序员如何花式表白?
七夕,诺奖得主用算法教你如何脱单
七夕来袭,又到了情侣们大秀恩爱,单身狗们咬牙切齿的季节。本着人道主义关怀,先给大家唱一曲单身狗之歌—— 雌雄双兔傍地走,你还是条单身狗; 两个黄鹂鸣翠柳,你还是条单身狗; 路见不平一声吼,你还是条单身狗; 问君能有几多愁,你还是条单身狗。 听完是不是很想组个复仇者联盟,早上去卖花,晚上去卖套,凌晨去卖药? 还是你认为社会资源就这么多,拆散一对是一对,于是整晚都在大街上溜达,看哪一对不顺眼就冲上去扇姑娘一巴掌然后问她“不是说你爱我吗?” 还是你打算宅在家里重播非诚勿扰,幻想自己站在台上和24位姑娘演皇上选后妃
小莹莹
2018/04/20
5670
七夕,诺奖得主用算法教你如何脱单
情人节脱单必备,程序员如何花式表白
今天是七夕,一个对单身人士不怎么友好的一个节日,而对于已经有另外一半的情侣来说,今天应该是开心的一天,鲜花与巧克力也必然是在送去的路上。而对于众多程序员小哥哥们来说,他们在表达爱意的时候也会特别的别出
用户6888863
2020/08/27
3.7K0
情人节脱单必备,程序员如何花式表白
小白学数据之新年计划 | 开始学Python吧!
大数据文摘作品,转载要求见文末 作者|张远园 审校|Aileen Selene对本文亦有贡献 在数据科学家炙手可今天,Python无疑是当今数据科学家最重要的工具之一。新年伊始,如果想进入数据科学家这个领域,那么开始学习Python应当成为你的新年计划之一。本文介绍3步零基础快速入门Python的途步骤,包裹常用的Python安装办法。 新春快乐!作为数据领域的小白,新的一年有什么计划? 小白:新年新气象,我对数据行业一直很有兴趣,我很想今年里更好的准备自己进入这个行业,却不知如何下手。 小白你知道大数
大数据文摘
2018/05/25
8910

相似问题

云+校园扶持计划有有购买要求吗?我进行到付款这一步了,求解答?

1292

【有奖互动】新年将至,如何过一个技术范的新年?

12311.2K

腾讯云有计划推出域名交易功能吗?

1314

小程序通信im有单聊功能吗?

1728

腾讯网盘有计划出toC版本吗?

1151
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档