在iOS上使用URL在内存中保存文件的最佳方式



我想在内存中保留一个文件,并将其提供给一个与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方案,从内存中提供文件

最新更新