在Swift中简化数组结果

时间:2017-10-08 23:51:22

标签: swift

我正在尝试从图形请求中获取一系列Facebook ID。到目前为止,我使用了以下代码:

    if let userData = result as? [String:Any] {
        let id = userData["data"]
        print(id)
    }

然而,结果对我来说仍然太混乱了。例如,print语句给了我:

    Optional(<__NSArrayI 0x1c42285c0>(
    {
        id = aaaaaaa;
    },
    {
        id = bbbbbbb;
    }
    )
    )

如何进一步清理结果以获得简单的数组? 所需的结果如下:[aaaaaaa, bbbbbbb,...]

另外,打印userData显示:

    ["summary": {
"total_count" = 867;
    }, "data": <__NSArrayI 0x1c0429260>(
    {
id = aaaaaaa;
    },
    {
id = bbbbbbb;
    }
    )
    , "paging": {
cursors =     {
    after = //a long nasty thing
    before = //another long nasty thing
};
    }]

1 个答案:

答案 0 :(得分:0)

您应该使用flatMap来简化结果。

if let idArray = userData[data] as? [[String: Any]] {
    let ids = idArray.flatMap { $0["id"] as? String }
    print(ids) //[aaaaaaa, bbbbbbb,...]
}