加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

数组 – 如何在swift中将Dictionary分配给AnyObject

发布时间:2020-12-14 05:39:22 所属栏目:百科 来源:网络整理
导读:我一直在玩 Swift.我有类型的多个错误,特别是使用Swift和我的旧Objective-C类.这个方法的问题是:我期待在Objective-C中由NSDictionarys组成的数组. var curArr:[DictionaryString,AnyObject] = self.getItemsForCurrentStack()var arrToReturn:[(Dictionary
我一直在玩 Swift.我有类型的多个错误,特别是使用Swift和我的旧Objective-C类.这个方法的问题是:我期待在Objective-C中由NSDictionarys组成的数组.
var curArr:[Dictionary<String,AnyObject>] = self.getItemsForCurrentStack()
var arrToReturn:[(Dictionary<String,AnyObject?>)] = []
for obj in curArr{
    arrToReturn.append(["image": UIImage(named: obj["imageName"] as! String),"color": UIColor(red:obj["colorDic"]!["red"] as! CGFloat,green:obj["colorDic"]!["green"] as! CGFloat,blue:obj["colorDic"]!["blue"] as! CGFloat,alpha:1.0),"percentage": obj["percantage"]])
}
return arrToReturn

这将返回Swift中的Dictionaries(NSDictionaries).但最后一行引发了一个错误:

Dictionary’ is not identical to ‘AnyObject’

我试过用过! [AnyObject]

但是这引发了另一个错误:

‘AnyObject’ is not a subtype of ‘Dictionary’

我没有得到第二个错误,因为这不一定是一个子类型,反之亦然.关于如何解决这个问题的任何想法?我没有找到几个小时的谷歌和研究的答案.

Dictionary是Swift中的结构,而AnyObject是

/// The protocol to which all classes implicitly conform.

根据您的尝试,您可能希望在代码中使用Any,或者使用NSDictionary将字典转换为NSDictionary.

澄清后编辑:

如果从字典本身拆分追加调用,则会看到更好的错误消息:

因此,问题是您的字典包含一些可选值,但Optional是一个结构,不能转换为Obj-C.你可以通过施法来修复UIImage!和AnyObject! (ImplicitlyUnwrappedOptional),或使用as!.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读