自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(39)
  • 收藏
  • 关注

原创 Objective-C对象的本质

Objective-C对象的本质很多人都知道Objective-C的底层主要是C,C++实现的,所以Objective-C得对象也肯定是基于C,C++的数据结构实现的.那问题来了,是什么数据结构实现的呢?大家可以想象,对象或者类可以有各种类型的实例包括NSString,Float,int,NSArray,要存储不同类型的数据结构,只有结构体.打开NSObject看其源码:再点击Class可...

2019-08-15 15:45:09 172

原创 行为型模式之访问者模式

行为型模式之访问者模式

2019-05-07 15:49:18 158

原创 行为型模式之模板模式

行为型模式之模板模式

2019-04-30 11:29:10 145

原创 行为型模式之状态模式

行为型模式之状态模式场景解决方案应用状态模式来解决的思路模式结构和说明示例代码模式讲解1. 状态和行为2. 行为的平行性模式的缺点状态模式(State Pattern),当一个对象的现下状态改变时,允许改变其行为,这个对象看起来像是改变了其类状态模式主要解决的是当控制一个对象状态转换的条件表达式过于复杂时的情况,把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化场...

2019-04-29 17:59:20 154

原创 行为型模式之观察者模式

行为型模式之观察者模式模式结构和说明示例代码iOS中的观察者模式模式讲解1. 目标和观察者之间的关系2. 单向依赖3.基本的实现说明模式本质当对象间存在一对多关系时,则使用观察者模式(Observer Pattern),比如,当一个对象呗修改时,则会自动通知它的依赖对象,观察者模式属于行为型模式一个经典的例子就是订阅报纸.你不用去任何地方,只需要将你的个人地址信息以及订阅信息告诉出版社,出...

2019-04-29 14:58:57 181

原创 行为型模式之备忘录模式

行为型模式之备忘录模式模式结构和说明备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象.备忘录模式属于行为型模式这个模式的思想对大家来说应该很熟悉,很多时候在编程的时候,不小心删了某一段代码或者写错了,咱们都用CMD+Z恢复到原来的状态,那么怎么做到的呢?就是使用备忘录模式,在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,...

2019-04-28 14:08:05 125

原创 行为型模式之中介者模式

行为型模式之中介者模式模式结构和说明示例代码模式讲解在iOS中的常用场景(控制器切换)中介者模式(Mediator Pattern)是用来降低多个对象和类之间的通信复杂性.这种模式提供了一个中介类,该类通常处理不同类之间的通信,并支持松耦合,使代码易于维护.中介者模式属于行为型模式。世界在二次大战之后总体是和平的,但还是有不少战争,比如伊拉克战争,伊朗核问题,朝鲜核问题等,由于各国之间代表...

2019-04-26 16:54:21 143

原创 行为型模式之迭代器模式

行为型模式之迭代器模式模式结构与说明线性表示例实现在iOS 中的应用模式讲解优点:缺点:提供一种方法顺序访问一个聚合对象中的各个元素,而不需要暴露该对象的内部表示所谓聚合:指一组对象的组合结构,比如集合,数组等公交车上,有各色各样的人,售票员都需要让这些人买票,那么要让这些人买票,售票员肯定都得把车厢里的人都遍历一遍,不放过一个不买票的乘客,不管这个人是中国人还是外国人,是公交车公司内部...

2019-04-25 17:09:42 142

原创 行为型模式之解释器模式

行为型模式之解释器模式模式结构和说明示例代码模式讲解优点缺点总结解释器模式(Interpreter Pattern)提供了评估语言的语法或表达式的方式,它属于行为型模式.这种模式实现了一个表达式接口,该接口解释一个特定的上下文.这种模式被用在 SQL 解析、符号处理引擎等。模式结构和说明解释器模式主要包括以下几个角色:AbstractExpression:抽象表达式.声明一个抽象的...

2019-04-16 18:36:41 81

原创 行为型模式之命令模式

行为型模式之命令模式命令模式(Command Pattern)是一种数据驱动的设计模式,它属于行为型模式。请求以命令的形式包裹在对象中,并传给调用对象。调用对象寻找可以处理该命令的合适的对象,并把该命令传给相应的对象,该对象执行命令...

2019-04-16 14:06:38 85

原创 行为型模式之责任链模式

行为型模式之责任链模式

2019-04-09 17:51:05 115

原创 希尔排序

希尔排序代码实现算法分析时间复杂度空间复杂度希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是基于插入排序的以下两点性质而提出改进方法的:插入排序在对几乎已经排好序的数据操作时,效率高,即可以达到线性排序的效率;但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位;希尔排序的思想是:先将整个待排序的记录序列分割称为若干子...

2019-04-08 17:33:27 89

原创 结构型模式之代理模式

代理模式介绍示例代码模式讲解实现流程代理用assign还是weak?在代理模式(Proxy Pattern)中,一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。介绍代理主要由三部分组成:协议: 用来指定代理双方可以做什么,必须做什么代理: 根据指定的协议,完成委托方需要实现的功能委托: 根据指定的协议,指定代理去完成什么功能Protocol-协议的概念从上图中...

2019-04-08 16:47:04 76

原创 结构型模式之享元模式

享元模式模式结构和说明示例代码在软件系统中,有时候会存在资源浪费的情况,例如在计算机内存中存储了对个完全相同或者非常相似的对象,如果这些对象的数量太多将导致系统运行代价过高,内存属于计算机的"稀缺资源",不应该用来"随便浪费",那么是否存在一种技术可以用于节约内存使用空间,实现对这些相同或者相似对象的共享访问呢?答案是肯定,这种技术就是我们本章将要学习的享元模式。享元模式(Flyweight...

2019-04-08 15:57:59 62

原创 结构型模式之外观模式

外观模式模式结构和说明示例代码模式讲解目的使用外观跟不使用相比有何变化优点缺点外观模式(Facade Pattern)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问的接口.这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口来隐藏系统的复杂性这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用上面介绍了半天定义没明白对吧?下面简单来说外观...

2019-04-04 15:22:06 155

原创 插入排序

插入排序思想代码实现思想将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。从头到尾一次扫描为排序序列,将扫描到的每个元素插入有序序列的适当位置.(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)平均时间复杂度:O(n2)代码实现for (int i = 1; i < arr.count; i++) { ...

2019-04-03 20:43:55 90

原创 选择排序

选择排序

2019-04-03 19:30:36 68

原创 结构型模式之装饰器模式

装饰器模式模式定义模式结构和说明示例实现不用模式的实现装饰模式解决装饰模式示例代码如何给类或者对象增加行为?继承机制,使用继承机制是给现有类添加功能的一种有效途径,通过继承一个现有类可以使得子类在拥有自身方法的同事还拥有父类的方法.但这种方法是静态的,用户不能控制增加行为的方式和时机关联机制,即将一个类的对象嵌入另一个对象中,由另一个对象来觉得是否调用嵌入对象的行为以便扩展自己的行为,我们...

2019-04-03 18:59:11 150

原创 冒泡排序

冒泡排序算法步骤演示最快与最慢算法步骤比较相邻的元素,如果第一个比第二个大,就交换他们两个对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这步昨晚后,最后的元素会是最大的数针对所有的元素重复以上的步骤,除了最后一个持续每次对越来越少的元素重复上面的步骤,知道没有任何一对数字需要比较演示最快与最慢最快:当输入的数据已经是正序时(都已经是正序了,我还要你冒泡排序有何...

2019-04-03 09:39:49 75

原创 结构型模式之组合模式

组合模式介绍场景解决方案思路问题组合模式解决模式结构和说明实现使用组合模式的目的反思缺点组合模式(composite Pattern)又叫部分整体模式,是用于把一组相似的对象当做一个单一的对象,组合模式依据树形结构来组合对象,用来表示部分以及整体层次,这种类型的设计模式属于结构型模式,它创建了对象组的树形结构介绍意图:将对象组合成树形结构以表示"部分-整体"的层次结构,组合模式使得用户对...

2019-03-28 16:51:04 108

原创 结构型模式之桥接模式

桥接模式介绍桥接(Bridge)是用于把抽象化与实现化解耦,使得二者可以独立变化.这种类型的设计模式属于结构型模式,它通过提供抽象化与现实化之间的桥接结构,来实现二者的解耦这种模式涉及到一个作为桥接的接口,使得实体类的功能独立于接口实现类。这两种类型的类可被结构化改变而互不影响介绍意图: 将抽象化部分与实现部分分离,使它们都可以独立的变化主要解决:在有多种可能会变化的情况下,用继承会...

2019-03-20 17:28:49 109

原创 结构型模式之适配器模式

适配器模式介绍类图适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能.举个例子,读卡器是作为内存卡和笔记本之间的适配器,您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡介绍意图: 将一个类的接口转换成客户希...

2019-03-19 14:05:43 87

原创 创建型模式之原型模式

原型模式介绍深拷贝和浅拷贝原型模式实践原型模式(Prototype Pattern)用于创建重复的对象,同时保证性能,这种类型的设计模式属于创建型模式,这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆,当直接创建对象的代价比较大时,则采用这种模式.例如:一个对象需要再一个高代价的数据库操作之后被创建,我们可以缓存该对象,在下一个请求时返回它的克隆,在需要的时候更新数据库,以此来减少...

2019-03-19 10:50:12 93

原创 创建型模式之建造者模式

建造者模式介绍实现总结:(Builder Pattern)使用多个简单的对象一步一步创建成一个复杂的对象,属于创建性模式介绍意图: 将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示主要解决:在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成,由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化,但是将它们组合在一起的...

2019-03-18 17:54:21 61

原创 创建型模式之单例模式

单例模式介绍这种类型的设计模式属于创建型模式,涉及到一个单一的类,该类负责创建自己的对象,同事确保只有单个对象被创建,这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化改类的对象iOS的同志们应该对此不陌生注意:单例类只能有一个实例单例类必须自己创建自己的唯一实例单例类必须给所有其他对象提供这一实例介绍意图:保证一个类仅有一个实例,并提供一个访问它的全局访问...

2019-03-18 15:26:51 51

原创 创建型模式之抽象工厂模式

抽象工厂模式介绍实现抽象工厂模式(Abstract Factory pattern)是围绕一个超级工厂创建其他工厂.该超级工厂又称为其他工厂的工厂,这种类型的设计模式属于创建型模式在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定他们的类,每个生成的工厂都能按照工厂模式提供对象介绍意图: 提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类何时使用: 系...

2019-03-18 15:02:12 72

原创 创建型模式之工厂模式

工程模式简介介绍实现文章开头先给大家一张图,看看设计模式的类型简介工厂模式(Factory Pattern)是Java中最常用的设计模式之一.从上图看出它属于创建型模式,它提供了一种创建对象的最佳方式,在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个共同的接口来执行新创建的对象介绍意图: 定义一个创建对象的接口,让其子类自己决定实例化哪一个工程类,工程模式使其...

2019-03-18 11:42:20 150

原创 iOS scheme跳转机制

iOS scheme跳转机制简介注册URL Scheme方法一方法二使用1. 应用A跳转到应用B2. 跳转到指定界面3. 从DemoB返回到DemoA4. 通过URL传参5. 通过网址打开APP简介苹果手机中的APP都有一个沙盒,APP就是一个单独个体,信息独立,相互是不可以进行通信的.但是iOS的APP可以注册自己的URL Scheme,URL Scheme是为方便App之间相互调用而设计的...

2019-03-04 14:01:34 1568

原创 KVO使用过程中的坑

KVO使用过程中的坑KVO,全称为Key-Value Observing,是iOS中的一种设计模式,用于检测对象的某些属性的实时变化情况并作出响应下面我们来讨论一下在使用KVO中的一些问题:首先,假设我们的目标是在一个UITableViewController内对tableview的contentOffset进行实时监测,很容易地使用KVO来实现为:[_tableView addObs...

2019-02-26 11:34:18 184

转载 iOS多线程:GCD

Grand Central Dispatch(GCD) 是 Apple 开发的一个多核编程的较新的解决方法。它主要用于优化应用程序以支持多核处理器以及其他对称多处理系统。它是一个在线程池模式的基础上执行的并发任务。在 Mac OS X 10.6 雪豹中首次推出,也可在 iOS 4 及以上版本使用。

2019-02-15 10:42:26 118

原创 iOS动画开发-核心动画编程[CoreAnimation]

iOS动画开发-核心动画编程[CoreAnimation]使用步骤1. CABaseAnimation的实例化以及关键路径的注册2. 设定动画的属性3. 设定动画的开始值和结束值4. 添加动画组合动画动画开始和结束事件注意点使用步骤1. CABaseAnimation的实例化以及关键路径的注册使用"animationWithKeyPath:"方法进行CABasicAnimation的实例...

2019-01-25 17:29:44 129

原创 app审核关键点总结

app审核关键点总结安全令人反感的内容开发者信息性能App 完成度准确的元数据业务模式问题设计法律最近更新了一个APP,由于很久没有做这块的东西了,也没注意有哪些新条款,导致被打回来很多次,下面通俗的总结一下安全令人反感的内容这里的很多都是遇到1.1.6的问题有很多人都说修改app的资料,包括名称,关键词,app的描述等,其实你只要抓住苹果规则里的重要信息就可以了&amp;quot;虚假信息和功能&amp;quot;可...

2019-01-02 10:03:55 179

原创 NSProxy使用

NSProxy使用概念用法消息转发避免循环引用概念NSProxy是一个类似于NSObject的根类,看代码:NS_ROOT_CLASS@interface NSProxy &amp;amp;amp;amp;amp;lt;NSObject&amp;amp;amp;amp;amp;gt;{ Class isa;}上面我们可以看出NSProxy是一个实现了NSObject协议的抽象的基类,是根类,与NSObject类似用法消息转发NSProxy

2018-12-24 14:10:19 301

原创 内存检测

静态检测:(CMD+Shift+B)或者(building setting -&gt;Analyze During ‘Build’)动态检测方法(instrument/MLeakFinder)析构方法打印

2018-12-21 15:23:50 281

原创 iOS Keychain(钥匙串)原理及使用

iOS Keychain钥匙串原理及使用Keychain介绍Keychain的结构Keychain的特点Keychain的使用用户密码iOS 应用间共享 Keychain 数据Keychain介绍Keychain Services 是 macOS 和 iOS 都提供一种安全的存储敏感信息的工具,比如,网络密码:用户访问服务器或者网站,通用密码:用来保存应用程序或者数据库密码.与此同时,用于认证...

2018-12-17 16:11:18 14025

原创 密码学之HMAC

MAC(Message Authentication Code,消息认证码算法)是含有密钥散列函数算法,兼容了MD和SHA算法的特性,并在此基础上加上了密钥。因此MAC算法也经常被称作HMAC算法简述 密钥相关的哈希运算消息认证码,HMAC运算利用哈希算法,以一个密钥和一个消息为输入,生成一个消息摘要作为输出HMAC算法首先它是基于信息摘要算法的。目前主要集合了MD和SHA两大系列消息摘要...

2018-12-17 10:16:10 1098

原创 密码学摘要算法之SHA2

简述前面的篇章中我们已经说明过,SHA实际包括有一系列算法,分别是SHA-1、SHA-224、SHA-256、SHA-384以及SHA-512。而我们所说的SHA2实际是对后面4中的统称。各种SHA算法的数据比较如下表,其中的长度单位均为:原理消息的填充与解析消息填充的目的是为了在消息填充后,在SHA-224和SHA-256中消息的长度正好是512位的整数倍,SHA-384和SHA-5...

2018-12-14 16:16:12 2789

原创 密码学摘要算法之SHA1

密码学摘要算法之SHA1SHA介绍思想处理过程SHA介绍SHA算法,即安全散列算法(Secure Hash Algorithm)是一种与MD5同源的数据加密算法,该算法经过加密专家多年来的发展和改进已日益完善,现在已成为公认的最安全的散列算法之一,并被广泛使用SHA算法能计算出一个数位信息所对应到的,长度固定的字串,又称信息摘要.而且如果输入信息有任何的不同,输出的对应摘要不同的机率非常高...

2018-12-13 18:17:10 942

原创 密码学摘要算法之MD5

密码学摘要算法之MD5摘要算法摘要算法摘要算法是一种能产生特殊输出格式的算法,这种算法的特点是:无论用户输入什么长度的原始数据,经过计算后输出的密文都是固定长度的,这种算法的原理是根据一定的运算规则对原数据进行某种形式的提取,这种提取就是摘要,被摘要的数据内容与原数据有密切 联系,只要原数据稍有改变,输出的“摘要”便完全不同,因此,基于这种原理的算法便能对 数据完整性提供较为健全的保障。但是,...

2018-12-13 15:43:35 876 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除