Parsing twitter api JSON en Swift

Estoy usando Twitter-Kit / Fabric para get una respuesta de la API de Twitter. Devuelve un JSON del siguiente formatting: https://dev.twitter.com/rest/reference/get/search/tweets

Mi consulta es: https://api.twitter.com/1.1/search/tweets.json?q=""&geocode=lat,long,radius&count=15

Necesito extraer el text y las coorderadas del JSON para trazar esos tweets en un map.

¿Qué estoy haciendo mal con el siguiente código?

 Twitter.shanetworkingInstance().APIClient.sendTwitterRequest(request) { (response, data, connectionError) -> Void in if (connectionError == nil) { var jsonError : NSError? let parsedResult = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &jsonError) as NSDictionary println(parsedResult) if let tweets = parsedResult["statuses"] as? NSDictionary { for tweetsDict in tweets { let title = tweetsDict["text"] as NSString println("text: \(title)") let coordinates = tweetsDict["coordinates"] println("coordinates: \(coordinates)\n") } }else { println("Error: \(connectionError)") } } 

Mi código se ejecuta hasta println (parsedResult) ya que obtengo una respuesta válida del twitter api. Sin embargo, estoy teniendo problemas para extraer el text del tweet de la respuesta JSON.

Si está utilizando Fabric , puede crear objects de tweet a partir de la respuesta utilizando el método TWTRTweet

 + (NSArray *)tweetsWithJSONArray:(NSArray *)array; 

Crea una matriz de instancias TWTRTweet de la matriz de la respuesta JSON de API de Twitter.

 NSArray *tweetData = [TWTRTweet tweetsWithJSONArray:responseFromTwitter]; [tableview reloadData]; 

Puede usar objects de tweet para poblar en tableview en cellForRowAtIndexPath . Para devolver una celda de tweet,

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *cellID = @"TweetCell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellID forIndexPath:indexPath]; TWTRTweet *tweet = twitterResponse[indexPath.row]; [(TWTRTweetTableViewCell *)cell configureWithTweet:tweet]; return cell; } 

EDITAR

En Swift , puede hacer lo siguiente:

 // Create an array of tweet model objects from a JSON array tweetData = TWTRTweet.tweetsWithJSONArray(responseFromTwitter) tableView.reloadData() //create Tweet cells override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell { let tweet = tweetData[indexPath.row] let cell = tableView.dequeueReusableCellWithIdentifier(tweetTableReuseIdentifier, forIndexPath: indexPath) as TWTRTweetTableViewCell cell.configureWithTweet(tweet) return cell } 

¡Espero eso ayude!

Referencia tomada de aquí

Hay un pequeño error con su código. Use este código. Funciona mejor para mí. Configure este código en cierta function en la acción del button.

  Twitter.shanetworkingInstance().APIClient.sendTwitterRequest(request) { (response, data, connectionError) -> Void in if (connectionError == nil) { var jsonError : NSError? let parsedResult = NSJSONSerialization.JSONObjectWithData(data, options: nil, error: &jsonError) as NSDictionary println(parsedResult) if let tweets = parsedResult["status"] as? NSDictionary { println(tweets) for tweetsDict in tweets { let title = tweetsDict["text"] as NSString println("text: \(title)") let coordinates = tweetsDict["coordinates"] println("coordinates: \(coordinates)\n") } }else { println("Error: \(connectionError)") } }