Quiero crear un juego que use un sistema de niveles. Así que quiero almacenar mis niveles y poder cambiarlos durante el juego (para guardar el estado). Entonces decidí usar XML para almacenar niveles. Encontré la clase NSXmlParser para leer desde XML, pero no puedo encontrar un escritor para guardar el estado del nivel. En mi juego, el nivel de estado y el nivel son muy similares (tengo muchos objetos móviles), así que no quiero almacenar los datos de estado de nivel separados del nivel al que pertenece. El problema es que no puedo encontrar una forma de modificar fácilmente los archivos XML en iPhone. Tal vez estoy usando un mal enfoque.iOS XML writer class
Respuesta
Puede usar la biblioteca C libxml2
para leer y escribir en XML. Aquí hay una introducción rápida: Cocoa Samurai: Getting Some XML Love with libXML2.
Sin embargo, ¿ha considerado usar CoreData o implementar el protocolo NSCoding
? NSCoding
sería más fácil de agregar a las clases existentes.
Si tiras los datos en un NSDictionary
, se puede hacer (con salvedades):
[myDictionary writeToFile:pathToPlist atomically:YES];
Prueba el código abierto XML stream writer for iOS:
- escrito en Objective-C, una sola .h . y el archivo .m
- Una @protocol para el soporte de espacio de nombres y otra para sin
Ejemplo:
// allocate serializer
XMLWriter* xmlWriter = [[XMLWriter alloc]init];
// start writing XML elements
[xmlWriter writeStartElement:@"Root"];
[xmlWriter writeCharacters:@"Text content for root element"];
[xmlWriter writeEndElement];
// get the resulting XML string
NSString* xml = [xmlWriter toString];
Esto produce la siguiente cadena XML:
<Root>Text content for root element</Root>
LGPL no es (en mi opinión) una buena licencia para proyectos iOS. Significa que si quiero usar tu código, estoy obligado a liberar mi aplicación en una forma re-vinculable (es decir, tengo que liberar los archivos objeto, lo que podría hacer, pero es un montón de molestias adicionales). ¿Ha considerado utilizar la Licencia pública de Mozilla en su lugar? Obliga a las personas a publicar los cambios que realizan en los archivos con licencia de MPL, pero no requiere que se liberen los archivos del objeto. – JosephH
Cuanto menos molestias para todos, mejor. He agregado la licencia permisiva de GNU, ya que de todos modos no se realizarán cambios de terceros a la biblioteca en cualquier momento. – ThomasRS
yo recomendaría usar KissXML. El autor comenzó en una situación similar a la tuya y creó un envoltorio API compatible con NSXML alrededor de libxml. Él discute las opciones y decisiones here en su blog.
Además, este es posiblemente un duplicado de: http://stackoverflow.com/questions/3849270/iphone-how-to-write-xml-files/3973554#3973554 – codelark
- 1. XML writer y Memory Stream C#
- 2. cómo crear un xml usando xml writer sin elemento de declaración
- 3. Writer o OutputStream?
- 4. Herencia de Doctrine Class en XML
- 5. IOS - XML Imprimir Bastante
- 6. ¿qué hace @class en el desarrollo de iOS 4?
- 7. 'Programación por coincidencia' Ejercicio: Java File Writer
- 8. ¿Writer Monad garantiza la concatenación asociativa correcta?
- 9. XML Documentation Comments with Interfaces and implementation class (es)
- 10. Elección del analizador XML IOS correcto
- 11. Análisis Xml en el tutorial de iOS
- 12. ASP.NET Cache class vs. MemoryCache class
- 13. ¿Por qué "[self class] == [super class]"?
- 14. Class Documentation Suggestions
- 15. ¿Las mónadas Writer my E son categóricamente duales?
- 16. escribir csv en ruby 1.9 y CSV :: Writer
- 17. ¿Debo cerrar el parámetro Writer para mi controlador Spring 3?
- 18. cómo escribir al principio del archivo con Stream Writer?
- 19. ¿Cómo insertar comentarios XML en Serialización XML?
- 20. Excepción de Class Cast: com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl
- 21. Conversión de .class al frasco y .class a exe
- 22. CSS: #id .class VS .class performance. ¿Cual es mejor?
- 23. Analizando un archivo xml local en iOS sdk
- 24. Uso de OpenStreetMap .osm Datos XML en iOS
- 25. eliminar la cabecera XML desde un archivo XML en Java
- 26. "restricciones de cargador violadas al vincular javax/xml/namespace/QName class" de webapp en Oracle 10g
- 27. CSS - LESS class inheritance
- 28. A Repository Factory Class
- 29. .class vs .java
- 30. Rails Reserved Class Names
esto es sin uso de xml, ¿sí? – Andrew
@Andrew el archivo resultante será XML (específicamente, en formato Plist) –