¿Podemos almacenar NSURLRequest directamente en Core Data?

Estoy desarrollando una aplicación de iPad en la que necesito crear Multiple NSURLRequest. Cuando falla, necesito volver a ejecutar esa request de URL.

Tengo tres types de request (Crear escuela, Crear piso y Crear habitaciones) que contienen varios parameters diferentes crear request.

Hay un método de evaluación que puede dispararse cuando hay internet disponible con el mismo object que se creó en la primera request.

Entonces estaba tratando de crear tres tablas y estaba tratando de almacenar todos los parameters con su estado.

¿Es posible crear Single Table con NSURLRequest independientemente de CREATE REQUEST?

Las entidades de Core Data corresponden a instancias de NSManagedObject o a una subclass de NSManagedObject , por lo que no puede simplemente save requestes de URL directamente. Lo que podría hacer es crear una entidad llamada algo así como SavedRequest que tenga una propiedad que represente la request de URL, y quizás algunos otros detalles sobre la request (sea cual sea la otra información que pueda necesitar, ¿date, quizás?).

Como NSURLRequest cumple con NSCoding , crearía esta propiedad usando el tipo de datos "transformables" de Core. Core Data usaría NSCoding para convertir automáticamente a / desde NSData según sea necesario. NSURLRequest una NSURLRequest a la propiedad y las volvería a leer, y Core Data las saveía como NSData .

Sin embargo, dada su descripción, Core Data podría no tener sentido. Parece que solo quieres save una list de requestes de URL y luego volver a leerla, y no necesitas las características adicionales que Core Data proporcionaría. Sería más fácil poner sus objects NSURLRequest en una matriz y luego save esa matriz en un file o en los valores pnetworkingeterminados del usuario. Se convertiría a / desde NSData usted mismo, pero ya que puede usar NSCoding es fácil.

Para save la matriz, haría algo como esto, suponiendo una matriz llamada myArray contiene requestes de URL y una ruta en filePath :

 BOOL success = [NSKeyedArchiver archiveRootObject:myArray toFile:filePath]; 

Recuperarías la matriz usando

 NSArray *savedRequests = [NSKeyedUnarchiver unarchiveObjectWithFile:filePath]; 

Así que se me ocurrió mi propia idea que estoy compartiendo con todos.

Según lo que leo y Google, no puedo almacenar NSURLRequest en datos básicos. porque no sé tipo de object.

Crearé la tabla de datos del núcleo con la columna PARAMS, METHODS, URL

Entonces, ¿puedo crear una tabla que contendrá la columna de PARAMS (Dict), Métodos (PUT, GET etc.), URL.

Lo que haré es que puedo convertir parameters DICT en NSKeyedArchiver y savelos en la columna PARAM. URL y MÉTODOS en una columna separada.

Cuando necesito save la request, puedo tomarla de la tabla y enviarla al server.

Probablemente solo pueda save el absoluteString de la propiedad URL de NSURLRequest. ¿O tienen cada uno distintos times de espera o políticas de caching?

Sí, eso es posible, al less con Swift. Con Swift puede acceder a la propiedad Transformable en CoreData. Usando esta propiedad es posible poner cualquier tipo de datos en Core Data. Eso incluso sin gastos adicionales.

Consulte el excelente tutorial http://geekyviney.blogspot.nl/2015/02/transformable-binary-data-properties-in.html