Ios Swift AnyObject到Int总是以nil结尾

Ios Swift AnyObject到Int总是以nil结尾,ios,swift,Ios,Swift,我想做一个任何物体?变成和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 如果基础类型是String,在大多数情况下,可以使用以下代码: let id =

我想做一个任何物体?变成和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

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

let id = Int(foo as! String)!
检查
ParseUser(json)
函数。此处的
用户\u id
不是Int。您可以使用此词典进行检查:

// 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)

您需要先将对象转换为
NSString
。一旦有了它,就可以将其赋值给Int类型的变量

let user_id = (user["user_id"] as? NSString)?.integerValue
你可以尝试以下方法:

哪个输出是:

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

user["user_id"]!.dynamicType

对于参数列表类型为“(AnyObject?)的类型,我无法调用初始值设定项。您如何解析JSON?什么类型的?如果它是一个普通的解析,并且是
字符串
,那么您可以使用更新的答案How do I have a array of mixed Int's and String。我将数组创建为var user=[String:AnyObject](),这是ParseUser返回的内容。您创建的是
字典,而不是数组。您创建的代码是正确的,但可能将
user\u id
字段设置错误。您必须这样设置:
user[“user\u id”]=361
谢谢,我刚刚将值设置为错误
user["user_id"]!.dynamicType