2012-09-27 58 views
5

因此+(id)dataWithContentsOfMappedFile:(NSString *)path自iOS 5.0以來顯然不推薦使用。這聽起來像我應該避免使用它,但那麼我應該使用什麼呢?替代NSData棄用dataWithContentsOfMappedFile

我正在使用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); 

回答

10

使用+dataWithContentsOfFile:options:error:。作爲選項通過NSDataReadingMappedIfSafe。您也可以使用NSDataReadingMappedAlways,但我建議前者除非真的必須映射。如果它真的必須映射,NSDataReadingMappedAlways仍然只是一個提示,所以沒有任何承諾。爲了得到承諾,你需要自己寫下,as discussed at CIMG

+0

我會盡量按CIMG的建議實施。感謝指針。 – mprivat

相關問題