2012-09-27 12 views
5

Tak więc +(id)dataWithContentsOfMappedFile:(NSString *)path jest najwyraźniej przestarzałe od iOS 5.0. Wydaje mi się, że powinienem tego unikać, ale co powinienem zamiast tego użyć?Substytut NSData przestarzałe dane z ContentOfMappedFile

Używam mmap do tworzenia plików mapowanych w pamięci i działało z iOS5, ale w iOS6 coś jest nie tak, ponieważ pojawia się błąd, gdy tylko spróbuję zaktualizować lub odczytać bufor.

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

Odpowiedz

10

Użyj +dataWithContentsOfFile:options:error:. Przełóż NSDataReadingMappedIfSafe jako opcję. Możesz również użyć NSDataReadingMappedAlways, ale polecam ten pierwszy, chyba że naprawdę trzeba go zmapować. Jeśli to naprawdę musi być zmapowane, NSDataReadingMappedAlways jest wciąż tylko wskazówką, więc nie ma obietnicy. Aby otrzymać obietnicę, musisz napisać to osobiście, as discussed at CIMG.

+0

Postaram się wdrożyć zgodnie z sugestią na CIMG. Dzięki za wskaźnik. – mprivat