2012-09-27 6 views
5

So ist +(id)dataWithContentsOfMappedFile:(NSString *)path offenbar seit iOS 5.0 veraltet. Es klingt für mich so, als müsste ich es vermeiden, aber was sollte ich stattdessen verwenden?Ersatz für NSData veraltet dataWithContentsOfMappedFile

Ich verwendete mmap, um Speicherabbilddateien zu erstellen, und es funktionierte mit iOS5, aber in iOS6 ist etwas falsch, weil ich einen Fehler erhalte, sobald ich versuche, den Puffer zu aktualisieren oder zu lesen.

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

Antwort

10

Verwenden Sie +dataWithContentsOfFile:options:error:. Übergeben Sie NSDataReadingMappedIfSafe als die Option. Sie können stattdessen auch NSDataReadingMappedAlways verwenden, aber ich empfehle ersteres, sofern es nicht wirklich zugeordnet werden muss. Wenn es wirklich gemappt werden muss, ist NSDataReadingMappedAlways immer noch nur ein Hinweis, also gibt es kein Versprechen. Um ein Versprechen zu bekommen, müssen Sie es selbst schreiben, as discussed at CIMG.

+0

Ich werde versuchen, wie bei CIMG vorgeschlagen zu implementieren. Danke für den Zeiger. – mprivat