NSData的替代品已弃用dataWithContentsOfMappedFile

mpr*_*vat 5 mmap objective-c ios

所以+(id)dataWithContentsOfMappedFile :( NSString*)路径自iOS 5.0以来显然已被弃用.听起来像我应该避免使用它,但那么我应该使用什么呢?

我正在使用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);
Run Code Online (Sandbox Code Playgroud)

Rob*_*ier 10

使用+dataWithContentsOfFile:options:error:.通过NSDataReadingMappedIfSafe作为选项.您也可以使用NSDataReadingMappedAlways,但我推荐前者,除非它真的必须映射.如果真的必须映射,NSDataReadingMappedAlways仍然只是一个提示,所以没有承诺.要获得承诺,您需要自己编写,如CIMG所述.