iOS - 装饰对象】的更多相关文章

1.设计模式原则 多组合,少继承 类对拓展开放,对修改关闭 派生的子类接口是在编译时就静态决定的,而所有子类都会继承到相同的接口.然而,利用组合或者说装饰模式来拓展抽象类的接口,就可以在运行时动态的进行扩展. 2.概述 装饰模式英文名叫Decorator Pattern.装饰模式是在不必改变原类文件和使用继承的情况下,动态地扩展一个对象的功能.它是通过创建一个包装对象,也就是装饰来包裹真实的对象. Component:抽象接口--有标准规范的接口. Decorator:持有Component对象…
这篇博客光看标题或许就会产生疑问,某个对象,只要它存在某个属性,且值不是空的,不就能直接用点方法获取吗,为什么要拆分成key和value多此一举呢?下面,我用一个例子告诉大家,既然这方法是存在的,那就有它存在的价值. 有一个对象,比如说是仓库清单:model.苹果:100斤,香蕉:50斤,梨子:80斤........(共50种货物) 现在我要建立一个tableView表格,一个分区,50个单元格,每个cell的内容是:货物种类    存有多少 cell肯定是根据IndexPatch.row来取值…
在iOS开发过程中,我们经常需要用到等同性来判断两个对象是否相等,通常我们会使用==来判断,但是这样比较出来的结果可能不是我们期望的:所以,一般我们会使用NSObject协议声明的isEqual方法来判断对象的等同性.并且,为了更好的进行深层次的比较,iOS系统中的NSObject子类还实现了各自的isEqual:方法. == 究竟比较的是什么? 对于基本类型,==比较的是值:对于对象类型,`==``比较的是对象的地址,即是否为同一个对象 NSString *s1 = @"123";…
ios提供了两个类 NSKeyedArichiver NSKeyedUnarchiver对自定义对象进行归档 和解档操作 归档常见方法 - (void)encodeObject:(id)objv forKey:(NSString *)key;- (void)encodeConditionalObject:(id)objv forKey:(NSString *)key;- (void)encodeBool:(BOOL)boolv forKey:(NSString *)key;- (void)enc…
IOS提供的数据持久化方式有:SQLite.CoreData.属性列表.NSUserDefault.对象归档. 这里来简单介绍下对象归档: 对象归档是将对象归档以文件的形式保存到磁盘中(也称为序列化,持久化),使用的时候读取该文件的保存路径读取文件的内容(也称为接档,反序列化), (对象归档的文件是保密的,在磁盘上无法查看文件中的内容,而属性列表是明文的,可以查看). 对象归档有两种方式:1:对foundation中对象进行归档  2:自定义对象归档 1.简单对象归档 使用两个类:NSKeyed…
1. 在block外面这样:__weak MyController *weakSelf = self 或者 __weak __typeof(self) weakSelf = self;是为了防止强引用导致循环引用2.执行block方法体的时候也可以转换为强引用之后再使用MyController* strongSelf = weakSelf; if (!strongSelf) { return; }那么,里面变成强引用后,不是又导致循环引用了吗?有意思的就在这里,IOS中,block内部,对弱应用…
相等的概念是探究哲学和数学的核心,并且对道德.公正和公共政策的问题有着深远的影响. 从一个经验主义者的角度来看,两个物体不能依据一些观测标准中分辨出来,它们就是相等的.在人文方面,平等主义者认为相等意味着要保持每个人的社会.经济.政治和他们住地的司法系统都一致. 对程序员来说,协调好逻辑和感官能力来理解我们塑造的'相同'的语义是一项任务.'相同的问题'(的探讨)太微妙,同时有太容易被忽视.对语义没有充分的理解就直接去实现它,可能会导致没必要的工作和不正确的结果.因此对数学和逻辑系统的深刻理解与按…
我们在向后台Post数据的时候,常常需要把某个对象作为参数,比如在AF的框架中,我们进行Post时,其中的para参数就是需要NSdictionary的 Alamofire.request(.POST, url, parameters: params, encoding:.JSON, headers:headersDic) 要把自定义对象转成NSDictionary是一件非常麻烦的事情,这个类使用OC编写,通过Runtime访问属性列表,快速转换成字典. Swift使用使用桥接文件即可. BID…
Zombie Objects对象研究 一.Xcode 关闭ARC project -> Build settings  搜索 Automatic Reference Counting      设置为NO 二.开启 僵尸对象 选项 三.代码验证 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. Person *per…
点按钮的时候,给alertView添加一个关联对象(被点击这个按钮), objc_setAssociatedObject(alert, &kRepresentedObject, sender, OBJC_ASSOCIATION_RETAIN_NONATOMIC); 在UIAlertViewDelegate中取出关联对象(被点击的按钮) UIButton *sender = objc_getAssociatedObject(alertView, &kRepresentedObject); &…