变量在其自己的初始值Swift 3中使用

时间:2017-01-29 12:07:34

标签: swift parse-platform swift3

我尝试将我的代码转换为swift 3,我花了好几个小时来处理以下错误:

  

类型'Any'没有下标成员

这是我的原始代码:

let data: AnyObject = user.object(forKey: "profilePicture")![0]

我查看了答案here,但我仍然被卡住了。 (我做编程是一种爱好,我不是专业人士:/)

我试过了:

    let object = object.object(forKey: "profilePicture") as? NSDictionary
    let data: AnyObject = object![0] as AnyObject

但现在我收到了这个错误:

  

在其自己的初始值

中使用的变量

1 个答案:

答案 0 :(得分:1)

第二个问题:使用始终不同的变量名称作为方法名称,无论如何基本上使用比object更具描述性的名称。

第一个问题:告诉编译器profilePicture的值的类型,显然是一个数组。

if let profilePictures = user["profilePicture"] as? [[String:Any]], !profilePictures.isEmpty {
   let data = profilePictures[0]
}

但是,数组可能包含Data个对象,如果是,请使用

if let profilePictures = user["profilePicture"] as? [Data], !profilePictures.isEmpty  {
   let data = profilePictures[0]
}

或者 - 键的含义 - profilePicture的值是单个对象,谁知道(但是你......)

最后,与往常一样,不要在Swift中使用NSArray / NSDictionary