Almacenamiento de metadatos arbitrarios con un archivo de texto plano
Estoy escribiendo un editor de texto y necesitaría almacenar algunas piezas de información (generalmente solo algunas cadenas; el almacenamiento no tiene que ser particularmente duradero) con cada archivo que guarda la aplicación (sin que eso sea parte del archivo de texto). como otras aplicaciones pueden leerlo y la información solo es específica para mi aplicación).
¿Cómo voy a hacer esto?
Más información: Tengo un NSDocument configurado y me gustaría simplemente almacenar una variable de instancia NSString como un metadato por archivo. Basándome en las respuestas a continuación, se me ocurrió esto, que actualmente está defectuoso y hace que el programa se bloquee durante el inicio:
<code>#import <sys/xattr.h> @interface MyDocument : NSDocument { NSString *metadatum; } @implementation MyDocument - (BOOL)writeToURL:(NSURL *)url ofType:(NSString *)type error:(NSError **)err { BOOL output = [super writeToURL:url ofType:type error:err]; if(!setxattr([[url path] cStringUsingEncoding:NSUTF8StringEncoding], "eu.gampleman.xattrs.style", [metadatum cStringUsingEncoding:NSUTF8StringEncoding], sizeof(char) * [styleName length], 0, 0)) { NSLog(@"Write failure"); } return output; } - (BOOL)readFromURL:(NSURL *)url ofType:(NSString *)type error:(NSError **)err { char *output; ssize_t bytes = getxattr([[url path] cStringUsingEncoding:NSUTF8StringEncoding], "eu.gampleman.xattrs.style", &output, 1024, 0, 0); if (bytes > 0) { metadatum = [[NSString alloc] initWithBytes:output length:bytes encoding:NSUTF8StringEncoding]; // <- crashes here with "EXC_BAD_ACCESS" } return [super readFromURL:url ofType:type error: err]; } // ... // fairly standard -dataOfType:error: and // -readFromData:ofType:error: implementations </code>
PD: Si su respuesta es realmente buena (con código de muestra, etc.), otorgaré una recompensa de 100rep.