首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >(密钥: AnyObject,值: AnyObject)不能转换为'Dictionary<String,AnyObject>

(密钥: AnyObject,值: AnyObject)不能转换为'Dictionary<String,AnyObject>
EN

Stack Overflow用户
提问于 2015-02-26 05:04:09
回答 2查看 2.4K关注 0票数 0

我有一个.json文件,我正在将其序列化到Swift字典中。

代码语言:javascript
复制
typealias Dict = Dictionary<String,AnyObject>
       func loadDictionaryFromJSON(filePath:String) -> Dict
    {
        var JSONData:NSData! = NSData.dataWithContentsOfMappedFile(filePath) as NSData
        var JSONError:NSError?
        let swiftObject:AnyObject = NSJSONSerialization.JSONObjectWithData(JSONData, options: NSJSONReadingOptions.AllowFragments, error: &JSONError)!
        if let nsDictionaryObject = swiftObject as? NSDictionary
        {
            if let dictionaryObject = nsDictionaryObject as Dictionary?
            {
                return dictionaryObject as Dict
            }else
            {
                println("Error could not make dictionary from NSDictionary in \(self)")
            }
        }else
        {
            "Error could not make NSDictionary in \(self)"
        }

        println("Empty dictionary passed, fix it!")
        return Dict()
    }

然而,我现在在获取对象时遇到了问题。我的.json基本上是一个字典的字典(具有不同级别的嵌套)。因此,首先,我抓取顶层的每个对象(它们都是字典)。

代码语言:javascript
复制
for object in objects
        {
            var dict:Dictionary<String,AnyObject> = object
        }

但是,上面的代码行抛出了错误

代码语言:javascript
复制
(key: AnyObject, value: AnyObject)' is not convertible to 'Dictionary<String, AnyObject>

如何正确地将字典中的每个对象转换为Dictionary <String,AnyObject>

EN

回答 2

Stack Overflow用户

发布于 2015-02-26 05:08:55

尖括号是古老的Swift AFAICT (协议除外?)为什么需要类型别名?如果你创建了它,为什么不在你的循环中使用它呢?

你能去掉别名和尖括号,在任何地方使用格式,看看会发生什么吗?

例如,下面的方法是否工作得更好?

代码语言:javascript
复制
for o in objects {
    var dict = o as [String : AnyObject]
}

如果对象已经被输入,你可以只调用它的字典并这样做:

代码语言:javascript
复制
for dict in dictionaries {
    continue
}
票数 0
EN

Stack Overflow用户

发布于 2015-02-26 05:15:38

代码语言:javascript
复制
for (key,value) in objects
        {
            var object:Dict = value as Dict
        }

结果是它给了我一个元组,我需要将这个值转换为一个字典。

有关详细信息,请参阅'(key: AnyObject, value: AnyObject)' does not have a member named 'subscript'

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28729528

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档