变量在其自身初始值内使用 Swift 3
Variable used within its own initial value Swift 3
我尝试将我的代码转换为 swift 3,我花了几个小时解决以下错误:
Type 'Any' has no subscript members
这是我的原始代码:
let data: AnyObject = user.object(forKey: "profilePicture")![0]
我查看了答案 here,但我仍然卡住了。 (我将编程作为一种爱好,我不是专业人士 :/)
我试过了:
let object = object.object(forKey: "profilePicture") as? NSDictionary
let data: AnyObject = object![0] as AnyObject
但现在我得到这个错误:
Variable used within its own initial value
第二期:使用总是一个不同的变量名作为方法名,基本上使用比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
。
我尝试将我的代码转换为 swift 3,我花了几个小时解决以下错误:
Type 'Any' has no subscript members
这是我的原始代码:
let data: AnyObject = user.object(forKey: "profilePicture")![0]
我查看了答案 here,但我仍然卡住了。 (我将编程作为一种爱好,我不是专业人士 :/)
我试过了:
let object = object.object(forKey: "profilePicture") as? NSDictionary
let data: AnyObject = object![0] as AnyObject
但现在我得到这个错误:
Variable used within its own initial value
第二期:使用总是一个不同的变量名作为方法名,基本上使用比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
。