替代NSData弃用dataWithContentsOfMappedFile

所以+(id)dataWithContentsOfMappedFile:(NSString *)path显然是从iOS 5.0弃用。 这听起来像我应该避免使用它,但是我应该使用什么呢?

我正在使用mmap来创build内存映射文件,它与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); 

使用+dataWithContentsOfFile:options:error: 。 通过NSDataReadingMappedIfSafe作为选项。 您也可以使用NSDataReadingMappedAlways ,但我build议前者,除非它真的必须映射。 如果真的必须映射, NSDataReadingMappedAlways仍然只是一个提示,所以没有任何承诺。 为了得到承诺,您需要自己写, 如CIMG所讨论的 。