0

我想将一个文件保存在内存中并将其提供给与 URL 一起使用的库(想想 NSURL)。如果我可以创建一些 iOS 可以使用 file:// 或类似文件访问的内存映射文件,那就太好了。

我的后备方法是创建一个本地服务器套接字,从内存中提供文件,但如果可能的话,我想找到一种更简洁的方法。

4

2 回答 2

0

我最终使用 NSURLProtocol 创建了一个从内存中提供文件的新 URL 方案。

于 2011-05-06T05:07:38.157 回答
0

我用它从网上读取文件并缓存在内存中:

- (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:willCacheResponse:方法。我的 NSURL 指向网络,但如果你指向你的包中的一个文件,它应该可以工作。我从https://github.com/rs/SDURLCache获得了该代码

于 2011-05-04T10:26:35.590 回答