美文网首页
NSURLCache官方文档阅读

NSURLCache官方文档阅读

作者: AppleTTT | 来源:发表于2017-06-19 18:09 被阅读130次

    NSURLCache

    Overview

    NSURLCache类通过将NSURLRequest对象映射到NSCachedURLResponse对象来实现对URL加载请求的响应的缓存。 它提供内存和磁盘缓存,并可让你操作内存和磁盘部分的大小。 你还可以控制持久存储缓存数据的路径。

    NOTE:在iOS中,当系统运行磁盘空间不足时,只有当你的应用未运行时,磁盘上的缓存可能会被清除。

    在iOS 8及更高版本以及macOS 10.10及更高版本中,NSURLCache是线程安全的。

    虽然NSURLCache实例方法可以同时从多个执行上下文中安全地调用,但请注意,像尝试为相同请求读取或写入响应时,诸如cachedResponseForRequest:storeCachedResponse:forRequest之类的方法具有不可避免的竞争条件。

    NSURLCache的子类必须以线程安全的方式实现覆盖父类的方法。

    Symbols

    Getting and setting shared cache

    • @property(class, strong) NSURLCache *sharedURLCache

      返回NSURLCache的单例,这是一个类属性;
      没有特殊缓存要求或约束的应用可以直接使用此实例。 具有更多特定需求的应用可以创建一个自定义的NSURLCache对象,并调用setSharedURLCache:方法将其设置为共享缓存实例。 所有对共享实例的调用都应该在此设置之后。

    Creating a new cache object

    • - (instancetype)initWithMemoryCapacity:(NSUInteger)memoryCapacity diskCapacity:(NSUInteger)diskCapacity diskPath:(NSString *)path

      使用指定的值来初始化NSURLCache对象;

      memoryCapacity: 内存缓存的字节数;
      diskCapacity: 磁盘缓存的字节数;
      path:在macOS中,path是存储磁盘缓存的位置。在iOS中,path是应用程序的默认缓存目录的子目录的名称,用于存储磁盘缓存(如果不存在则创建子目录)。

      生成的NSURLCache支持磁盘存取,因此开发人员在选择此类缓存的容量时可以更加宽松。 在大多数情况下,以几十兆字节的磁盘缓存应该是可以接受的。

    Getting and storing cached objects

    • - (NSCachedURLResponse *)cachedResponseForRequest:(NSURLRequest *)request

      返回缓存的指定request的的响应数据;如果不存在返回nil;


    • - (void)storeCachedResponse:(NSCachedURLResponse *)cachedResponse forRequest:(NSURLRequest *)request

      缓存指定的request对应的cachedResponse

    Removing cached objects

    • - (void)removeAllCachedResponses

      删除所有的缓存数据;


    • - (void)removeCachedResponseForRequest:(NSURLRequest *)request

      清空指定request对应的缓存的响应数据,如果本来就没有则什么都不做;

    Getting and setting on-disk cache properties

    • @property(readonly) NSUInteger currentDiskUsage

      调用者的磁盘缓存的当前已使用的大小(以字节为单位)。


    • @property NSUInteger diskCapacity

      调用者的磁盘缓存的总容量(以字节为单位)。

    Getting and setting in-memory cache properties

    • @property(readonly) NSUInteger currentMemoryUsage@property NSUInteger memoryCapacity

      同上;

    Instance Methods

    • - (void)getCachedResponseForDataTask:(NSURLSessionDataTask *)dataTask completionHandler:(void (^)(NSCachedURLResponse *cachedResponse))completionHandler

      这个是写在NSURLSessionTaskAdditions分类中的方法,没有注释和相关文档,下面的方法也是一样的。看方法名,作用应该是取出指定任务中的所有缓存的响应数据;


    • - (void)removeCachedResponseForDataTask:(NSURLSessionDataTask *)dataTask

      删除指定任务中的缓存数据;


    • - (void)removeCachedResponsesSinceDate:(NSDate *)date

      删除指定时间内的缓存数据;


    • - (void)storeCachedResponse:(NSCachedURLResponse *)cachedResponse forDataTask:(NSURLSessionDataTask *)dataTask

      存储指定任务的响应数据;

    相关文章

      网友评论

          本文标题:NSURLCache官方文档阅读

          本文链接:https://www.haomeiwen.com/subject/mdhnqxtx.html