I have already updated to XCode 8 and now I need to convert my code from Swift 2 to Swift 3.
Before, when I want to convert NSDictionary
to Dictionary
, I just wrote the following:
let post_paramsValue = post_params as? Dictionary<String,AnyObject?>
where post_params
is NSDictionary
.
But now with Swift 3, I am receiving this error:
NSDictionary is not convertible to Dictionary
Why? What's changed?
I've also tried the following:
let post_paramsValue = post_params as Dictionary<String,Any>
But that gives this error:
I've also tried the following:
let post_paramsValue = post_params as Dictionary<String,Any>
Where I declare NSDictionary
instead of NSDictionary!
, but it doesn't work; I got this error:
I've also tried the following:
let post_paramsValue = post_params as Dictionary<String,Any>!
But I received this error:
NSDictionary
in Objective-C has always non-optional values.AnyObject
has become Any
in Swift 3.NSDictionary
can be bridge cast to Dictionary
let post_paramsValue = post_params as Dictionary<String,Any>
If the source NSDictionary
is an optional you might use as Dictionary<String,Any>?
or as? Dictionary<String,Any>
or as! Dictionary<String,Any>
or as Dictionary<String,Any>!
depending on the actual type of the NSDictionary