【问题标题】:Get object from an array of dictionaries with a specific key value pair?从具有特定键值对的字典数组中获取对象?
【发布时间】:2016-10-26 03:01:11
【问题描述】:

所以,如果我有一个像下面这样的字典:

{
 "banners": [
   {
     "imageUrl": "www.google.com",
     "destination": "home",
     "position": 1
   },
   {
     "imageUrl": "www.reddit.com",
     "destination": "work",
     "position": 2
   },
   {
     "imageUrl": "www.imgur.com",
     "destination": "play",
     "position": 3
   }
 ]
}

有没有办法让我说,“在不使用 for 循环的情况下,获取键 'position' = 3 的字典对象?

【问题讨论】:

  • 是的,但请记住,someone 必须查看数组中的所有字典,直到找到那个字典,即使循环不可见且直接你的代码。所以“不使用 for 循环”的概念有点愚蠢。某些魔力不可能直接进入正确的字典。
  • @matt 我明白了。我只是想知道是否已经存在一种看起来更干净的不错的工厂方法,我可以学习一下,这对更高级的情况也有帮助。

标签: ios objective-c arrays nsdictionary


【解决方案1】:

让我们考虑一下。呵呵,方法很多!令人惊奇的是,只需在文档中查找片刻即可告诉您。

banners 键的值是一个字典数组。所以你正在寻找的是一个 NSArray 方法。一个 NSArray 方法,例如 filteredArrayUsingPredicate:!

因此,您可以编写一个 NSPredicate,将 position 描述为等于 3,然后您将返回一个包含所有字典的 NSArray(在这种情况下,一个字典的数组)。

哦,还有另一种可能性:indexOfObjectPassingTest:。这样,您提供一个块,指定字典的 position3,然后您将返回该数组中该字典的索引(在本例中为 2)。

我可以继续说下去,但你自己学习阅读文档不是更好吗? Here it is.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-17
    • 2019-06-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-20
    相关资源
    最近更新 更多