大佬教程收集整理的这篇文章主要介绍了ios – updateValue不适用于Dictionary,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
import Foundation import UIKit class ImageCache { var Dict:Dictionary<String,NSData>?; init() { Dict = Dictionary<String,NSData>(); } func exists(id:string) -> Bool { return Dict!.indexForKey(id)!==nil; } func getImage(id:string) -> UIImage? { if(!exists(id)) { return nil; } return UIImage(data: (Dict!)[id]); } func setData(id:string,data:NSData) { Dict!.updateValue(data,forKey: id); } }
问题出在最后一种方法中,Xcode声明“无法找到成员’updateValue’”.这很奇怪,因为代码提示似乎表明它很好:
但是当我尝试编译时:
它是如何实施的(可能有缺陷)
发生的事情是,Optional将Dictionary作为不可变对象存储(或许也许).因此,即使是可选的,它也是可变的,您无法直接修改基础的Dictionaryobject(无需重新分配Optional对象).
updateValue(forKey :)是一种变异方法,你不能在不可变对象上调用它,因此也就是错误.
你可以通过这样做来解决它
var d = Dict! d.updateValue(data,forKey: id)
因为你将字典复制到另一个可变变量,该变量然后是可变的并且能够在其上调用变异方法
以上是大佬教程为你收集整理的ios – updateValue不适用于Dictionary全部内容,希望文章能够帮你解决ios – updateValue不适用于Dictionary所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。