NSDictionary 在检索信息时返回一个可选的整数
NSDictionary returning an optional integer when retrieving information
我有这样声明的字典:
var friendLetterCount:NSDictionary = NSDictionary(dictionary: [String:Int]())
而且我显然想检索字典中键的信息,但是当我这样做时,它只有 returns 个可选整数,我该如何做到这一点才能使它们仅为整数?
我这样检索:
friendLetterCount["a"]
当我将它打印到控制台时它说
optional(1)
我试过用我能想到的所有方式转换它,但它总是给我一个错误提示
'(NSObject, AnyObject)' is not convertible to 'Int'
如有任何建议,我们将不胜感激。
Optional(1)
值只是表示该值是一个可选的swift类型。
您可以使用 !
运算符从可选值中解包值。
let a = friendLetterCount["a"]! as Int
println(a)
a
将是展开后的值。
您还可以使用 optional binding
在展开时检查 nil。
if let a = friendLetterCount["a"] as? Int
{
println(a)
}
请从 Apple 的 Swift 书中了解 Optionals。
你也可以阅读这样的文章
http://www.appcoda.com/beginners-guide-optionals-swift/
class AppModel: NSObject {
private var _user_id:String?
final func serviceResult(results:NSObject) {
var data = results as? NSDictionary
_user_id = String (data?.objectForKey("userId") as! Int)
println("user id \(_user_id)")
}
}
Note: AppMOdel is a NSObject class, results is the parsed JSON DATA, data- NSDictionary, _user_id is a private variable.
It return the print as :
user id Optional("8")
如果您不确定值是否始终为整数(通常 String/Intger 会发生这种情况),最安全的方法是:
if let count = friendLetterCount["a"]?.integerValue {
}
我有这样声明的字典:
var friendLetterCount:NSDictionary = NSDictionary(dictionary: [String:Int]())
而且我显然想检索字典中键的信息,但是当我这样做时,它只有 returns 个可选整数,我该如何做到这一点才能使它们仅为整数?
我这样检索:
friendLetterCount["a"]
当我将它打印到控制台时它说
optional(1)
我试过用我能想到的所有方式转换它,但它总是给我一个错误提示
'(NSObject, AnyObject)' is not convertible to 'Int'
如有任何建议,我们将不胜感激。
Optional(1)
值只是表示该值是一个可选的swift类型。
您可以使用 !
运算符从可选值中解包值。
let a = friendLetterCount["a"]! as Int
println(a)
a
将是展开后的值。
您还可以使用 optional binding
在展开时检查 nil。
if let a = friendLetterCount["a"] as? Int
{
println(a)
}
请从 Apple 的 Swift 书中了解 Optionals。
你也可以阅读这样的文章 http://www.appcoda.com/beginners-guide-optionals-swift/
class AppModel: NSObject {
private var _user_id:String?
final func serviceResult(results:NSObject) {
var data = results as? NSDictionary
_user_id = String (data?.objectForKey("userId") as! Int)
println("user id \(_user_id)")
}
}
Note: AppMOdel is a NSObject class, results is the parsed JSON DATA, data- NSDictionary, _user_id is a private variable.
It return the print as :
user id Optional("8")
如果您不确定值是否始终为整数(通常 String/Intger 会发生这种情况),最安全的方法是:
if let count = friendLetterCount["a"]?.integerValue {
}