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

관련 문제