ios - 如何在 Swift 中对字典类型的数组应用 removeAtIndex?

标签 ios arrays swift

我有键值类型的字典,例如:

var images = [String:UIImage]()

如果它是一个普通的字符串数组,我可以通过以下方式删除值:

images.removeAtIndex(indexPath.row)

但是如果它的参数类型是字典,那么它会给我以下错误:

Cannot convert value of type 'Int' to expected argument type 'DictionaryIndex'.

如何从给定索引处的此类数组中删除 remove?谁能帮我解决这个问题?

最佳答案

您只需删除带有 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"
  }
}

编辑2:

在阅读了您的赞扬和示例代码后,我认为您误解了您所拥有的内容。

你有一个键字典,它是字符串。与 UIImages 一对一配对。

因此,如果您根据键删除一个项目,则会删除其唯一的属性,即图像。

现在,既然你在原来的问题中说了数组这个词,我想这就是你想要的。

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

对你来说,它将是 `var images = String:[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"
    }
  }
}

关于ios - 如何在 Swift 中对字典类型的数组应用 removeAtIndex?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35809786/

相关文章:

iphone - 在 XCode 4 中将 iPhone 应用程序转换为 iPad 应用程序

ios - 使用未声明的类型 "ViewController"

objective-c - objective-c : How to store indices forming a sequence from middle to middle (indices for array or vector)

python - Pandas boolean 系列不会绘制

ios - xcode 8 swift : unwind segue transfer data is not working

ios - 为特定单元格设置 UITableView 单元格类型的更好方法

ios - 使用 SDWebImageManager 在 UICollectionView 中延迟加载图像

iphone - 以编程方式确定 VoiceOver 读取 UIView 项目的顺序

sql - 动态转换数组元素的类型以匹配 PostgreSQL 查询中的某些表达式类型

ios - 核心数据崩溃获取