在《中國區(qū)GPS偏移糾正(適用于Google地圖)》一文中曾讀取一個78M的大數(shù)據(jù)文件只怎,一開始采用了NSData的dataWithContentsOfFile:方法袜瞬。不少人反饋說如果直接使用,將會耗盡iOS的內(nèi)存身堡。
其實這個是可以改善的邓尤。
NSData還有一個API:
+ (id)dataWithContentsOfFile:(NSString *)path options:(NSDataReadingOptions)readOptionsMask error:(NSError **)errorPtr; 其中NSDataReadingOptions可以附加一個參數(shù),NSDataReadingMappedIfSafe參數(shù)贴谎。使用這個參數(shù)后汞扎,iOS就不會把整個文件全部讀取的內(nèi)存了,而是將文件映射到進程的地址空間中擅这,這么做并不會占用實際內(nèi)存澈魄,這樣就可以解決內(nèi)存滿的問題。