2017-10-08 53 views
0

我試圖從Graph Request中獲取Facebook ID數組。到目前爲止,我已經使用了以下代碼:在Swift中簡化數組結果

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

但是,結果對我來說仍然太混亂。例如,打印語句給我:

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

如何進一步清理結果以獲得簡單的數組? 所需的結果如下所示:[aaaaaaa, bbbbbbb,...]

還,打印用戶數據顯示:

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

回答

0

您應該使用flatMap爲了簡化的結果。

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

我得到了零值 – Sente

+0

是的。但是,我改變它讓idArray = userData [「數據」]爲? [字符串:任意] – Sente

+0

不能用類型爲'String'的索引對'[[String:Any]]'類型的值進行下標 – Sente