从Swift中的String获取Int

时间:2014-07-04 15:06:23

标签: string int swift

我想从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"])

1 个答案:

答案 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,则会进行分配。

行动中: enter image description here