Swift AnyObject to Int总是以nil结尾

时间:2015-10-28 17:30:46

标签: ios swift

我正在尝试制作AnyObject?成为和Int但它只是不适合我。我哪里错了?

let user = ParseUser(json)
let user_id = user["user_id"] as? Int

print(user)
print(user_id)

并打印

["user_id": 361, "gender": female, "email": ddd@gmail.com, "name": Bob]
nil

3 个答案:

答案 0 :(得分:0)

如果基础类型为String,在大多数情况下,您可以使用以下代码:

let id = Int(foo as! String)!

答案 1 :(得分:0)

检查user_id功能。 // Why gender, email and name field is not String? // What type of them is that? let user = ["user_id": 361, "gender": "female", "email": "ddd@gmail.com", "name": "Bob"] let user_id = user["user_id"] as? Int // Successfully printed "(Optional)361" print(user_id) 这里不是Int。你可以查看这本词典:

{{1}}

答案 2 :(得分:0)

您需要先将NSString转换为对象。获得后,您可以分配Int。

类型的变量
let user_id = (user["user_id"] as? NSString)?.integerValue

您可以尝试关注snippet

var user: [String: AnyObject] = ["user_id": "361"]

let user_id = (user["user_id"] as? NSString)?.integerValue

print(user_id)

哪个输出是:

Optional(361)

顺便说一句,您可以使用dynamicType属性检查变量的实际类型:

user["user_id"]!.dynamicType