2012-09-27 13 views
5

Quindi +(id)dataWithContentsOfMappedFile:(NSString *)path è apparentemente obsoleto da iOS 5.0. Mi sembra che dovrei evitare di usarlo, ma cosa dovrei usare invece?Sostituto per NSData dati deprecatiWithContentsOfMappedFile

Stavo usando mmap per creare file mappati in memoria e ha funzionato con iOS5, ma in iOS6, c'è qualcosa di sbagliato perché ottengo un errore non appena provo ad aggiornare o leggere il 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); 

risposta

10

Utilizzare +dataWithContentsOfFile:options:error:. Passa al numero NSDataReadingMappedIfSafe come opzione. Puoi anche usare NSDataReadingMappedAlways, ma ti consiglio il primo a meno che non debba essere mappato. Se davvero deve essere mappato, NSDataReadingMappedAlways è ancora solo un suggerimento, quindi non c'è alcuna promessa. Per ottenere una promessa, è necessario scrivere da soli, as discussed at CIMG.

+0

Proverò a implementare come suggerito da CIMG. Grazie per il puntatore. – mprivat