`

ios 关联

    博客分类:
  • ios7
阅读更多

 

+ (id <AFImageCache>)sharedImageCache {
    static AFImageCache *_af_defaultImageCache = nil;
    static dispatch_once_t oncePredicate;
    dispatch_once(&oncePredicate, ^{
        _af_defaultImageCache = [[AFImageCache alloc] init];

        [[NSNotificationCenter defaultCenter] addObserverForName:UIApplicationDidReceiveMemoryWarningNotification object:nil queue:[NSOperationQueue mainQueue] usingBlock:^(NSNotification * __unused notification) {
            [_af_defaultImageCache removeAllObjects];
        }];
    });

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wgnu"
    return objc_getAssociatedObject(self, @selector(sharedImageCache)) ?: _af_defaultImageCache;
#pragma clang diagnostic pop
}

//设置关联,降imageCache关联到sharedImageCache函数,接下来制定关联策略
+ (void)setSharedImageCache:(id<AFImageCache>)imageCache {
    objc_setAssociatedObject(self, @selector(sharedImageCache), imageCache, OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}

 以上代码来自AFNetwork源码,大致意思是通过AFNetWork下载图片的时候,我们可以指定缓存策略,如果不指定缓存策略,那么使用AFNetWork提供的默认的缓存策略。

 

分享到:
评论

相关推荐

    iOS关联objc_setAssociatedObject

    iOS-关联(objc_setAssociatedObject、objc_getAssociatedObject、objc_removeAssociatedObjects) 详解请参考:http://blog.csdn.net/u014220518/article/details/71750875

    iOS关联对象示例详解

    在iOS开发中,关联对象(Associated Objects)是一种利用运行时(runtime)机制为Objective-C对象动态添加属性的方法。当我们想要扩展一个类的功能,比如给一个类别(Category)添加属性,而又无法通过传统的继承或...

    ios-双向关联TableView.zip

    在“ios-双向关联TableView.zip”这个压缩包中,包含的示例项目"ZHFTableViewOfTableView"很可能是为了演示如何实现两个UITableView之间的交互和数据同步,这种设计模式通常被称为双向关联表格视图。这种模式在需要...

    ios 相互关联的多列选择器

    在iOS开发中,相互关联的多列选择器是一种常见的用户界面元素,用于提供用户一个多层次、多选项的筛选方式。这种选择器通常由多个UIPickerView组成,每一列的选项可能依赖于前一列的选择,形成一个联动的效果,使得...

    ios-两级列表关联.zip

    "ios-两级列表关联.zip" 文件很可能是为了展示如何在iOS应用中实现这样的功能。在这个场景中,我们通常会用到UITableView或者UICollectionView来呈现列表,并通过扩展的数据模型来处理嵌套的数据。 首先,我们要...

    ios-多个TableView的关联.zip

    在iOS开发中,多个TableView的关联是一个常见的需求,特别是在构建多层级导航或复杂数据展示时。这个主题主要涉及UITableView的使用、数据源管理以及不同TableView之间的交互。在"ios-多个TableView的关联.zip"文件...

    iOS实现联系人按照首字母进行排序的实例

    在iOS开发中,实现联系人按照首字母进行排序的功能是一个常见的需求。为了达到这个效果,开发者通常需要处理中文字符的拼音排序,确保同一姓氏的联系人能够连续显示且不被其他姓氏打断。`...

    Cisco常用IOS文件·

    【标签】"Cisco7200IOS"是该文件的特定标识,它直接关联到Cisco 7200系列路由器的IOS版本。Cisco的IOS通常有多个版本,每个版本可能包含不同的功能、安全补丁和性能优化。对于7200系列,不同的硬件平台和需求可能...

    iOS 高仿系统计算机

    为了将界面与代码关联,我们会使用IBOutlet和IBAction。IBOutlet用于连接界面元素到代码中的属性,IBAction则用于连接按钮的点击事件到相应的方法。例如: ```objc @interface ViewController () @property ...

    Objective-C的Category与关联对象实现原理 - iOS知识库1

    iOS开发中的Category和关联对象实现原理 Objective-C作为iOS开发中的主要编程语言,提供了Category和关联对象两个强大的机制来扩展类的功能。Category允许开发者向已有的类添加新的方法和变量,而关联对象则提供了...

    苹果apple解锁支持IOS11~IOS13.5.rar

    使用AltStore 越狱 iOS 13.5 1.下载并安装最新版本的AltStore。 2.在菜单栏中的AltStore图标上点击右键,安装Mail插件,如果你是在Mac上,请安装Mail插件。打开Mail app,进入 "首选项"&gt;"管理插件 "并允许AltPlugin...

    IOS16.2提取IPCC53.0 移动+联通+电信

    标签中的"IPCC IOS16.2ipcc IPCC53.0"进一步强调了主题,IPCC与iOS 16.2版本的关联,以及53.0这一特定的IPCC版本。 在压缩包子文件的文件名称"IOS16.2移动+联通+电信53.0 ipcc"中,我们可以推断压缩包包含了这三个...

    K8S之HPA基于内存指标实现pod自动扩缩容测试用例

    6. **Swift和iOS关联**: 虽然标签包含了"swift"和"ios",但在这个测试用例中,它们可能是应用的开发语言和平台。K8S和HPA不局限于特定的语言或平台,可以用来管理任何能在容器中运行的应用,包括用Swift编写的iOS...

    iOS 开发 SDK 思维导图 (iOS Technology Overview)

    思维导图会详细展示这些框架之间的关联,帮助开发者理解如何在不同框架之间协作完成任务。例如,当一个应用需要访问网络时,可能会涉及到URLSession(属于Foundation框架)来发起网络请求,同时使用Security框架处理...

    IOS15.0移动+联通+电信47.0 ipcc.rar

    同时,“IOS15 IPCC ipcc15.0”进一步强调了这些文件与iOS 15的关联,并且可能是iOS 15版本的IPCC。 综合以上信息,我们可以理解这个压缩包文件的主要内容是: 1. **IPCC文件**:这些是针对中国移动、中国联通和...

    IOS原版自带音效提取分享下载

    "IOS原版自带音效提取分享下载"这个主题涉及到的是苹果公司为iOS设备设计的一系列内置音效,这些音效通常与系统的不同操作和功能紧密关联,提供用户友好的交互体验。 首先,我们来看一下描述中提到的各个音效: 1....

    ios-简单快速的集成各种样式的pickerView.zip

    "ios-简单快速的集成各种样式的pickerView.zip" 文件提供了一种简便快捷的方式来集成多种样式和功能的PickerView,包括单列、多列、多列关联数据以及特定场景如城市选择器和日期选择器,这对于快速构建注册、个人...

    深入剖析iOS性能优化.pdf

    不同的数据结构具有不同的时间复杂度,时间复杂度直接关联到操作的效率。例如,数组的containsObject:、indexOfObject:、removeObject:等方法的时间复杂度为O(n),表示操作执行时间会随着元素数量增加成线性增长。...

    iOS12.2真机调试包

    每个设备都有一个唯一的UDID(Universally Unique Identifier),必须在Apple Developer Portal中注册并关联到开发账户。 4. **证书与配置文件**:开发过程中,需要创建和安装两种类型的证书:开发证书用于开发阶段...

Global site tag (gtag.js) - Google Analytics