2017-10-08 1 views
0

グラフリクエストからFacebook IDの配列を取得しようとしています。これまでのところ、私は次のコードを使用しました:配列を単純化するとSwiftが発生する

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 
}; 
    }] 

答えて

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 ["data"]に変更しましたか? [String:Any] – Sente

+0

タイプ '[[String:Any]]の値に' String 'タイプのインデックスを添字することはできません。 – Sente

関連する問題