Pregunta

Bien, esta es una pregunta bastante amplia. Esta es mi primera aplicación y no estoy seguro de la mejor manera de hacerlo. La aplicación está en IPHONE.

Tengo una clase de 'Restaurante'. El restaurante tiene muchos atributos y horarios diferentes. Actualmente almaceno un restaurante en una instancia de nsdata (cumple con NSCoding). El almacenamiento local es fácil y solo uso nsdata.

Acabo de construir una función de importación / exportación. Quiero que estos dos métodos sean & Quot; post & Quot; un restaurante a la web y " obtener " Un restaurante de la web. Sé que puedo hacer esto con NSUrlConnection y lo tengo en funcionamiento.

Sin embargo, quiero ser más inteligente al respecto. Por ejemplo, ¿qué sucede si quiero tomar mi lista en línea de restaurantes que se han enviado y crear una interfaz web que también pueda interactuar con los datos?

Esto es lo que estoy pensando hasta ahora: Crear un método 'toString' que convertirá mi clase en una representación textual. Luego almacene la cadena en un servidor. Esto reemplazará el almacenamiento de nsdata en línea. ¿Suena esto apropiado?

Sin embargo, quiero poder consultar la cantidad de restaurantes y tener un poco más de control sobre mi 'base de datos' en línea. ¿Es XML la respuesta? Estaba a punto de comenzar a buscar en Amazon Web Services y aprender Json o Rest.

¿Algún consejo?

Gracias

Dan

¿Fue útil?

Solución

Conozca REST, es la forma más fácil y limpia de proporcionar una API basada en la web. Algunos marcos, como Ruby on Rails, le brindan una interfaz REST desde el primer momento.

Entonces, necesitará encontrar una manera de convertir sus objetos en el iPhone a un formato compatible con REST. XML y JSON son ambas opciones, pero desafortunadamente no he visto ningún código para convertir a / o XML o JSON que realmente pueda recomendar, ya que todavía no lo he probado. Pero, hay algunos proyectos que pueden guiarlo en la dirección correcta. Una de las más prometedoras es esta:

http://github.com/yfactorial/objectiveresource/tree/master

Otros consejos

Todavía no estoy muy familiarizado con el desarrollo de iPhone, pero si hay una forma razonablemente fácil de consumir servicios web, recomendaría usar eso con parámetros mecanografiados. Esto haría que estos servicios sean más & Quot; usable & Quot; desde otros sistemas también, no necesitarían saber cómo serializar / empacar objetos en una cadena, sino solo cómo llamar a una función: storeRestaurang (nombre de cadena, clasificación internacional ...) etc.

Este es un artículo que revisaré yo mismo ya que espero entrar un poco más en el desarrollo de iPhone: http://icodeblog.com/2008/11/03/iphone-programming-tutorial-intro-to-soap-web-services/

Parece que quieres usar un plist. Cualquiera de las clases de colección de cacao se puede escribir en un plist, que es una raza de archivo xml. La parte dulce es que si usa clases de valor de cacao estándar, puede escribir la colección y leerla más tarde.

Los objetos NSString, NSNumber, NSDate, NSData, NSAray, NSDictionary pueden colocarse en una colección y almacenarse directamente en un plist. Otras clases deberán ser serializadas en NSData y luego escritas en el disco como plist. Para datos verdaderamente personalizados, un NSKeyedArchiver es probablemente lo que desea.

Para datos simples de cadenas y números, empaquételos en un NSDictionary y luego escríbalos en un plist. Ahora mire a su alrededor en su Mac y verá cuán populares son los plists.

API NSDictionary - Almacenamiento de diccionarios

Guía de programación de la lista de propiedades

Guía de programación de archivos y serializaciones para Cocoa

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