【问题标题】:delete unnecessary data from NSArray从 NSArray 中删除不必要的数据
【发布时间】:2013-01-16 14:07:01
【问题描述】:

我有一个 NSArray,其中包含大量来自 JSON 的数据。 这是来自我的 JSON 数据库

    {
          "ID":"6173",
          "Name":"Heuriger Familie Haller",
          "BeschreibungApp":"Heuriger Familie Haller, 2102 Bisamberg",
          "Link":"http:\/\/heurigenapp.nocache.gugler.at\/app.php?id=6173",
          "Icon":"Weintraube",
          "Latitude":"48.33284",
          "Longitude":"16.36383",
          "Altitude":"0",
          "Ort":"Bisamberg"
   }

我有 20 个这样的对象。而这一切我都在一个 NSArray 中。 但我只想要一个带有“Ort”的数组,所以我不需要大部分信息。

我可以这样做吗:

newsTown = [news valueForKey:@"Ort"];

【问题讨论】:

    标签: xcode cocoa filter nsarray


    【解决方案1】:

    当然,KVC 来拯救:D

    您想遵循 KeyPath:

    Array *new = [array valueForKeyPath:@"Ort"];

    假设新闻是你的 JSON dics 的 NSArray

    【讨论】:

    • 但是我来到了站的位置:cell.textLabel.text = [[news objectAtIndex:indexPath.row] objectForKey:@"Ort"];应用程序崩溃。你为什么会这样?
    • 您在使用 ARC 吗?如果不保留新数组:) Array *new = [[array valueForKeyPath:@"Ort"] retain];
    • ARC 禁止发送“保留”的显式消息
    • 这就是为什么我说:如果你不使用 arc ;P
    • 无论如何这是一个简单的问题:您只将“Ort”保存在新数组中 - 所以没有更多的字典。只是字符串 :) -- 所以:cell.textLabel.text = [news objectAtIndex:indexPath.row];
    【解决方案2】:

    当然可以:

    NSArray * newsTownArray = [NSArray arrayWithObject: [news valueForKey: @"Ort"]];
    

    【讨论】:

    • 浪费了一个中间数组,他在一个新闻对象数组中有很多新闻对象,所以这不会这样工作:)
    • @Daij-Djan:他也可以将其作为一个可变数组,并为 20 个对象中的每一个添加一个新对象,但无论如何,感谢您的反对!
    • 这不像你写的那样工作..你用键“Ort”的值创建一个数组(数组没有)所以你实际上会得到一个零指针异常 AFAICS => 这就是我冒昧投反对票的原因。
    • (我撤销了我的投票..人们倾向于把它个人化......虽然我从来没有那样的意思)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    相关资源
    最近更新 更多