2012-09-27 15 views
5

Por lo tanto, +(id)dataWithContentsOfMappedFile:(NSString *)path aparentemente está en desuso desde iOS 5.0. Me parece que debería evitar usarlo, pero ¿qué debería usar en su lugar?Sustituto de NSData datos obsoletosConContenidosOfMappedFile

Estaba usando mmap para crear archivos mapeados en memoria y funcionaba con iOS5, pero en iOS6, algo anda mal porque recibo un error tan pronto como trato de actualizar o leer el buffer.

int fd = open(path, O_RDWR); 
    off_t offset = 0; 
    snapshotData = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, offset); 
    close(fd); 

Respuesta

10

Use +dataWithContentsOfFile:options:error:. Pase NSDataReadingMappedIfSafe como opción. También puede usar NSDataReadingMappedAlways en su lugar, pero recomiendo el anterior a menos que realmente deba mapearse. Si realmente debe ser mapeado, NSDataReadingMappedAlways es solo una pista, por lo que no hay ninguna promesa. Para obtener una promesa, debe escribirla usted mismo, as discussed at CIMG.

+0

Intentaré implementar como se sugirió en CIMG. Gracias por el puntero. – mprivat