我想在内存中保留一个文件,并将其提供给一个与URL(想想NSURL)一起工作的库。如果我能创建一些内存映射文件,iOS可以使用file://或类似的方式访问,那就太好了。
我的后备方法是创建一个本地服务器套接字,从内存提供文件,但我想找到一个更整洁的方式,如果可能的话
我用这个从web读取文件并缓存在内存中:
- (NSCachedURLResponse *)connection:(NSURLConnection *)connection
willCacheResponse:(NSCachedURLResponse *)cachedResponse
{
NSCachedURLResponse *memOnlyCachedResponse =
[[NSCachedURLResponse alloc] initWithResponse:cachedResponse.response
data:cachedResponse.data
userInfo:cachedResponse.userInfo
storagePolicy:NSURLCacheStorageAllowedInMemoryOnly];
return [memOnlyCachedResponse autorelease];
}
这是来自NSURLConnection的connection: willcacherresponse:方法。我的nsurl指向web,但如果你指向bundle中的一个文件,它应该可以工作。这段代码来自https://github.com/rs/SDURLCache
我最终使用NSURLProtocol来创建一个新的url方案,从内存中提供文件