我正在尝试制作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
答案 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