2009-12-15 14 views
25

Estoy considerando usar YAML como parte de mi próxima aplicación de iPhone, pero no he podido encontrar una biblioteca de Objective-C para usar.¿Hay una biblioteca YAML nativa para iPhone?

La página de Wikipedia para YAML mentions one, pero el enlace está muerto.

¿Existe una biblioteca Objective-C que pueda analizar YAML en objetos nativos de colección (NSArray, NSDictionary, etc ...)?

+8

+1 solo por deseo de usar YAML –

+1

¿ha encontrado una solución? He probado YAMLKit pero no puedo hacerlo funcionar con iOS. –

+0

@MikeBevz No he encontrado una solución.Terminé usando JSON en ese proyecto. –

Respuesta

6

The Cocoa extensions for Syck son probablemente lo que está buscando, es donde la biblioteca que Shaggy Frog mencionó parece estar viviendo en estos días.

0

Encontré this desde YAML's front page. Pero parece que podría estar desactualizado (¿alrededor de 2004?) Y el enlace CVS no funciona para mí.

Apuesto a que es solo una capa delgada alrededor de una biblioteca de C subyacente como this o this ... El código C es el código "nativo" que compilará el compilador de Objective-C.

+0

Sí, eso es esencialmente lo que me gustaría. Sé que podría usar los analizadores C y C++ YAML, pero realmente me gustaría tener el envoltorio a su alrededor que devuelva las colecciones correctas y NSStrings en lugar de char * –

+0

Escuché lo que está diciendo. Desafortunadamente, parece que ya no hay nadie haciendo esa envoltura. Me gustaría seguir con su lista de correo directamente ... tal vez alguien tiene uno oculto que aún no han lanzado. –

1

SI que está haciendo un montón de C++ en sus proyectos de iPhone, por favor, eche un vistazo a yaml-CPP:

http://code.google.com/p/yaml-cpp/

  1. tiene soporte nativo de iPhone (a través de su sistema de compilación cmake)
  2. no tiene dependencias más allá de un buen compilador y cmake
  3. es muy C++ amigable (por lo tanto, el nombre) con documentación sólida (ver la página wiki/HowToParseADocument)
5

El marco YAMLKit es una envoltura delgada alrededor LibYAML . Hace exactamente lo que quieres. Por ejemplo:

[[YKParser alloc] init]; 
[p readString:@"- foo\n- bar\n- baz"]; 
id result = [p parse]; 
/* result is now an NSArray containing an NSArray with elements: 
    @"foo", @"bar", @"baz" */ 
[p release]; 
+2

YAMLKit no incluye libyaml, por lo que debe obtenerlo usted mismo. Este enfoque es un poco más limpio, pero también un poco más problemático. – febeling

6

Usted puede intentar YAML.framework se basa LibYAML, es rápido y fácil de usar. Sigue el mismo patrón que NSPropertyListSerialization estándar.

Puede usarlo para el desarrollo de iOS (iPhone/iPad).

+0

Hola, probé yaml.framework, y tuve problemas con la serialización: usa UTF16 a pesar de que intenta establecer utf8. Desde entonces, tuve más suerte con yamlkit. – Chris

3

Recientemente escribí enlaces ObjC-YAML modernos, basados ​​en la interfaz NSCoder/NSKeyedArchiver estándar: http://github.com/th-in-gs/YACYAML. Los estoy usando en mis propios proyectos, y tengo la intención de mantenerlos por lo menos mientras sigo haciéndolo.

Más aquí: http://www.blog.montgomerie.net/yacyaml

+0

¡Buen trabajo! Lo miré y lo encontré más poderoso. – Shmidt

+0

Esta es mi implementación favorita. Usar NSCoding para serializar/deserializar objetos a/desde YAML parece ser el derecho a hacerlo. – vopilif

-1

me encontré con esta pregunta en busca de opciones de Objective C + YAML. Terminé usando esta solución: https://github.com/icanzilb/JSONModel. Muy bueno, actualizado y fácil de usar. Parses yaml directamente en modelos de Object C que crea heredando la clase JSONModel.

+0

¿Es esto verdad? No veo ninguna mención de yaml en ese proyecto. –

Cuestiones relacionadas