Utilizando NSJSONSerialization para analizar JSON

Han ocurrido demasiadas discusiones sobre esto y, sin embargo, no puedo encontrar la manera de resolver mi problema.

Aquí están los datos JSON que obtengo de WorldWeatherOnline. El JSON es válido. Pero no puedo entender cómo analizarlo. Este es mi código, seguido por el JSON. ¡Por favor ayuda!

NSError* errorInfo; NSDictionary *parsedJSON = [NSJSONSerialization JSONObjectWithData:self.wwoWeatherData options:kNilOptions error:&errorInfo]; NSArray* temp = [parsedJSON objectForKey:@"temp_C"]; NSLog(@"%@", temp); 
    {
    "datos":{
       "condición actual":[
          {
             "cloudcover": "0",
             "humedad": "82",
             "observation_time": "11:07 PM",
             "precipMM": "0.0",
             "presión": "1024",
             "temp_C": "16",
             "temp_F": "61",
             "visibilidad": "10",
             "weatherCode": "113",
             "weatherDesc": [
                {
                   "valor": "borrar"
                }
             ],
             "weatherIconUrl": [
                {
                   "valor": "http: \ / \ / www.worldweatheronline.com \ / images \ / wsymbols01_png_64 \ /wsymbol_0008_clear_sky_night.png"
                }
             ],
             "winddir16Point": "NNE",
             "winddirDegree": "30",
             "windspeedKmph": "11",
             "windspeedMiles": "7"
          }
       ],
       "request":[
          {
             "consulta": "Lat 48.85 y Lon 2.35",
             "tipo": "LatLon"
          }
       ],
       "clima":[
          {
             "date": "2012-09-04",
             "precipMM": "0.0",
             "tempMaxC": "25",
             "tempMaxF": "77",
             "tempMinC": "14",
             "tempMinF": "57",
             "weatherCode": "113",
             "weatherDesc": [
                {
                   "valor": "soleado"
                }
             ],
             "weatherIconUrl": [
                {
                   "valor": "http: \ / \ / www.worldweatheronline.com \ / images \ / wsymbols01_png_64 \ /wsymbol_0001_sunny.png"
                }
             ],
             "winddir16Point": "N",
             "winddirDegree": "5",
             "Winddirection": "N",
             "windspeedKmph": "13",
             "windspeedMiles": "8"
          },
          {
             "date": "2012-09-05",
             "precipMM": "0.0",
             "tempMaxC": "22",
             "tempMaxF": "72",
             "tempMinC": "10",
             "tempMinF": "50",
             "weatherCode": "113",
             "weatherDesc": [
                {
                   "valor": "soleado"
                }
             ],
             "weatherIconUrl": [
                {
                   "valor": "http: \ / \ / www.worldweatheronline.com \ / images \ / wsymbols01_png_64 \ /wsymbol_0001_sunny.png"
                }
             ],
             "winddir16Point": "NNE",
             "winddirDegree": "25",
             "Winddirection": "NNE",
             "windspeedKmph": "20",
             "windspeedMiles": "13"
          },
          {
             "date": "2012-09-06",
             "precipMM": "0.0",
             "tempMaxC": "22",
             "tempMaxF": "71",
             "tempMinC": "11",
             "tempMinF": "51",
             "weatherCode": "113",
             "weatherDesc": [
                {
                   "valor": "soleado"
                }
             ],
             "weatherIconUrl": [
                {
                   "valor": "http: \ / \ / www.worldweatheronline.com \ / images \ / wsymbols01_png_64 \ /wsymbol_0001_sunny.png"
                }
             ],
             "winddir16Point": "NE",
             "winddirDegree": "42",
             "dirección de viento": "NE",
             "windspeedKmph": "15",
             "windspeedMiles": "10"
          },
          {
             "date": "2012-09-07",
             "precipMM": "0.0",
             "tempMaxC": "24",
             "tempMaxF": "75",
             "tempMinC": "13",
             "tempMinF": "55",
             "weatherCode": "116",
             "weatherDesc": [
                {
                   "valor": "Parcialmente nublado"
                }
             ],
             "weatherIconUrl": [
                {
                   "valor": "http: \ / \ / www.worldweatheronline.com \ / images \ / wsymbols01_png_64 \ /wsymbol_0002_sunny_intervals.png"
                }
             ],
             "winddir16Point": "ENE",
             "winddirDegree": "56",
             "Winddirection": "ENE",
             "windspeedKmph": "13",
             "windspeedMiles": "8"
          },
          {
             "date": "2012-09-08",
             "precipMM": "0.0",
             "tempMaxC": "26",
             "tempMaxF": "78",
             "tempMinC": "16",
             "tempMinF": "61",
             "weatherCode": "113",
             "weatherDesc": [
                {
                   "valor": "soleado"
                }
             ],
             "weatherIconUrl": [
                {
                   "valor": "http: \ / \ / www.worldweatheronline.com \ / images \ / wsymbols01_png_64 \ /wsymbol_0001_sunny.png"
                }
             ],
             "winddir16Point": "ENE",
             "winddirDegree": "76",
             "Winddirection": "ENE",
             "windspeedKmph": "9",
             "windspeedMiles": "6"
          }
       ]
    }
 }

Su json que analizó contiene un dictionary llamado data . Dentro de ese dictionary hay una matriz de current_condition . Continúe profundizando en las estructuras de datos para encontrar los attributes que busca:

 NSDictionary *data = [parsedJSON objectForKey:@"data"]; NSArray *currentConditions = [data objectForKey:@"current_condition"]; NSDictionary *condition = [currentConditions objectAtIndex:0]; NSString *tempC = [condition objectForKey:@"temp_C"];