据称自iOS 5.0起,+(id)dataWithContentsOfMappedFile:(NSString *)path已经被弃用。这让我觉得我应该避免使用它,但是我应该使用什么替代品呢?
我使用mmap来创建内存映射文件,在iOS5上工作正常,但在iOS6上有问题,因为一旦我尝试更新或读取缓冲区,就会出现错误。
int fd = open(path, O_RDWR);
off_t offset = 0;
snapshotData = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED, fd, offset);
close(fd);
NSDataReadingMappedIfSafe
将执行已弃用API的操作。NSDataReadingMappedAlways
将把整个文件读入内存(如果是映射文件,则通常不需要)。 - mm2001