Ios Swift AnyObject到Int总是以nil结尾
我想做一个任何物体?变成和Int,但这对我不起作用。我哪里做错了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 =
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