如何应用在字典类型的数组的 removeAtIndex Swift ?

标签: ios Swift
发布时间: 2017/3/5 20:32:33
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我有本字典的键-值类型,如︰

var images = [String:UIImage]()

它是一个正常的字符串数组,能不能删除由下列值︰

images.removeAtIndex(indexPath.row)

但是,如果其参数类型是字典然后我它给了我以下错误︰

不能转换类型的值的 Int 到预期参数键入 'DictionaryIndex'。

如何从这类数组在一个给定的索引中删除删除?谁能帮我在那?

解决方法 1:

您只需删除的项目与它 String 的关键。

images.removeValueForKey("someString")

编辑︰ 每评论︰

我完全不明白你的意思。我要重新创建您的方案。但是我会使用 Strings 而不是 UIImage's 因为我这样做,在命令行上。

  1> var images = [String:String]() 
images: [String : String] = 0 key/value pairs
  2> images["one"] = "someting 1 2 3"
  3> images["two"] = "something else 4 5 6"
  4> images
$R0: [String : String] = 2 key/value pairs {
  [0] = {
    key = "one"
    value = "someting 1 2 3"
  }
  [1] = {
    key = "two"
    value = "something else 4 5 6"
  }
}

现在,基于你的榜样,我想删除的项目。

  5> images.removeValueForKey("one")
$R1: String? = "someting 1 2 3"
  6> images
$R2: [String : String] = 1 key/value pair {
  [0] = {
    key = "two"
    value = "something else 4 5 6"
  }
}

Edit2:

读你赞扬和你的示例代码的第二次后,我想你误解你有什么。

你有一本字典的键名为字符串。配对在 UIImages 一个一对一关系。

所以,如果你删除其中一个项目基于键,删除其唯一的特性,它是图像。

现在,既然你说词数组在你原来的问题,我认为这是你想要什么。

 1> var images = [String:[String]]()

为你,它会 ' var 图像 = 字符串: [UIImage]

现在您有一个数组的每个键的图像。

images: [String : [String]] = 0 key/value pairs
  1> images["one"] = [String]
  2> images["one"]!.append("first")
  3> images
$R0: [String : [String]] = 1 key/value pair {
  [0] = {
    key = "one"
    value = 1 value {
      [0] = "first"
    }
  }
}
  4> images["one"]!.append("second")
  5> images
$R1: [String : [String]] = 1 key/value pair {
  [0] = {
    key = "one"
    value = 2 values {
      [0] = "first"
      [1] = "second"
    }
  }
}
  6> images["one"]!.removeAtIndex(0)
$R2: String = "first"
  7> images
$R3: [String : [String]] = 1 key/value pair {
  [0] = {
    key = "one"
    value = 1 value {
      [0] = "second"
    }
  }
}
官方微信
官方QQ群
31647020