我一直在玩
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!.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。