我想从String中创建一个Int,但无法找到如何。
这是我的func
:
func setAttributesFromDictionary(aDictionary: Dictionary<String, String>) {
self.appId = aDictionary["id"].toInt()
self.title = aDictionary["title"] as String
self.developer = aDictionary["developer"] as String
self.imageUrl = aDictionary["imageUrl"] as String
self.url = aDictionary["url"] as String
self.content = aDictionary["content"] as String
}
使用toInt()
时,我收到错误消息Could not find member 'toInt'
。我也不能使用Int(aDictionary["id"])
。
答案 0 :(得分:6)
使用dict[key]
方法订阅字典始终会返回可选。例如,如果您的词典为Dictionary<String,String>
,则subscript
将返回类型为String?
的对象。因此,您所看到的错误&#34;找不到会员&#39; toInt()&#39;&#34;之所以发生,是因为String?
是可选的,不支持toInt()
。但是,String
会这样做。
您可能还会注意到toInt()
会返回Int?
,这是一个可选项。
根据您的需要推荐的方法:
func setAttributesFromDictionary(aDictionary: Dictionary<String, String>) {
if let value = aDictionary["id"]?.toInt() {
self.appId = value
}
// ...
}
如果aDictionary
具有id
映射且其值可转换为Int
,则会进行分配。
行动中: