Pregunta

¿Cuál sería la forma más elegante de recibir datos de una API JSON de transmisión utilizando AfNetworking? AFNETWorking proporciona un excelente soporte para recibir datos que no se transmiten de las API JSON, pero no pude encontrar ningún ejemplo de transmisión JSON.

¿Fue útil?

Solución

AfNetworking no tiene una operación JSON de estilo saxo incorporada, pero debería ser directo para crear la suya propia.

  • Crear una subclase de AFJSONRequestOperation
  • Utilizar el outputStream propiedad de la operación durante la inicialización para conectarlo a un analizador JSON que admite el análisis de estilo Sax (como Yajl). El analizador leerá datos y construirá el objeto JSON a medida que llegue en
  • Conectar el responseJSON propiedad para leer el objeto en caché del analizador
  • ... o dependiendo de cómo esté haciendo transmisión, es posible que deba agregar una nueva propiedad que define un bloque para ejecutar cuando vuelvan los objetos New JSON (por ejemplo, setReceivedJSONBlock:((^)(void (id JSON))block). Este bloque probablemente será activado por los métodos delegados enviados desde el analizador (por ejemplo, <YAJLParserDelegate> -parserDidEndDictionary:).

Si puede hacer que esto funcione, le animo a publicar y compartir esto con otros. Creo que esto podría ser útil para bastantes personas.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top