自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Zgbin的博客

人但有恒,事无不成。

  • 博客(23)
  • 资源 (1)
  • 收藏
  • 关注

原创 三、ios组件化第三讲:远程私有库分析、码云私有库

  由于github私有库是收费的,所以我们选择码云来免费建立私有库。一、远程私有库分析1、终端输入pod repo ,查看索引库。图中是github的本地索引库和远程索引库的路径。2、如图,这是《ios组件化第三讲》上github的逻辑图。一般来说,我们通过远程索引库的.spec描述文件上记录的真实源码地址,就可以拿到框架源码。所以如何建立私有库,就是要把远程索引库隐藏起来,变成...

2019-05-19 21:42:40 203

原创 ios组件化第二讲:本地私有库、基础组件抽取方式和旧有的组件化方式

一、本地私有库  目的:在本地创建私有库,项目pod本地创建的第三方库。  步骤如下:  1、如图,在桌面创建TestProject文件夹,里面再创建TestLib文件夹,里面再创建Classes文件夹,打开终端,cd到Classes文件夹下,输入命令行touch Person.h Person.m,创建Person.h和Person.m文件。接着cd到TestLib文件夹下,在终端输...

2019-04-29 23:36:44 888

原创 ios组件化第一讲:git的基本使用和cocoapods的机制

工欲善其事必先利其器,在学习组件化之前,我们先来了解下git和cocoapods的使用。一、git的基本使用 需求:我需要在本地创建一个代码仓库,然后我们还需要一个远程的代码仓库,然后把两者链接起来,给你的代码打上一个tag。 解决方案:1、我们在远程代码仓库直接克隆到本地然后再打tag,链接:https://www.jianshu.com/p/3...

2019-03-12 11:44:29 262

原创 iOS SDWebImage的使用和底层原理

一、SDWebImage的使用1、SDWebImage的安装集成有2种方式:(1)直接到github地址下载,链接https://github.com/rs/SDWebImage (2)用cocoapods安装,在文件夹生成的podfile文件中添加pod 'SDWebImage' ,终端cd + 文件位置,然后pod install即可2、UITableView中导...

2019-03-08 18:36:57 2560

原创 IOS设计架构模式:外观模式和备忘录模式

一、外观模式1、外观模式简介        外观模式(Facade)在开发过程中的运用频率非常高,尤其是在现阶段各种第三方SDK充斥在我们的周边,而这些SDK很大概率会使用外观模式。通过一个外观类使得整个系统的接口只有一个统一的高层接口,这样能够降低用户的使用成本,也对用户屏蔽了很多实现细节。当然,在我们的开发过程中,外观模式也是我们封装API的常用手段,例如网络模块、ImageLoade...

2019-02-21 10:33:31 417

原创 IOS设计架构模式:命令模式、装饰模式和原型模式

  一、命令模式1、概念       命令对象封装了如何对目标执行指令的信息,因此客户端或调用者不必了解目标的任何细节,却仍可以对他执行任何已有的操作。通过把请求封装成对象,客 户端可以把它参数化并置入队列或日志中,也能够支持可撤销操作。命令对象将一个或多个动作绑定到特定的接收器。命令模式消除了作为对象的动作和执行它的接收器之间的绑定。2、应用场景       在软件系...

2019-02-18 12:11:03 333

原创 IOS设计架构模式:责任链模式和模板模式

一、责任链模式1、何为责任链?       责任链模式的主要思想是,将发送者和接收者解耦,接受者对象引用了同一类型的另一个对象,形成一条链。链中的每个对象实现了同样的方法,处理对链中第一个对象发起的同一个请求。如果一个对象不知道如何处理请求,它就把请求传递给下一个响应者。        责任链模式:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间发生耦合。此模式将这些对...

2019-02-14 10:48:52 468

原创 IOS设计架构模式:迭代器模式和组合模式

一、迭代器模式1、什么是迭代器模式?     提供一种方法顺序访问一个聚合对象中的各种元素,而又不暴露该对象的内部表示。迭代器是 iOS 中运用的最多的模式之一,你用到的NSArray``NSDictionary``NSSet等都是迭代器模式的实现,是 iOS 已经完整实现了的。如果你有详细的翻一下它们存在的属性的话,应该会注意到有一个属性叫objectEnumerator和reverse...

2019-02-01 17:50:28 175

原创 IOS设计架构模式:构建者模式和中介者模式

一、构建者模式       什么是构建者模式?       将一个“复杂对象的构建算法”与它的“部件及组装方式”分离,使得构建算法和组装方式可以独立应对变化;复用同样的构建算法可以创建不同的表示,不同的构建过程可以复用相同的部件组装方式。       比如,建造一栋大厦,那么就需要一个总建筑工程师(也就是指导者,相当于uml图中的组装者),N个包工头(也就是承包商,相当于uml图中...

2018-09-06 19:22:32 545

原创 IOS设计架构模式:代理模式和消息转发机制

一、代理模式       原理:在iOS中代理的本质就是代理对象内存的传递和操作,我们在委托类设置代理对象后,实际上只是用一个id类型的指针将代理对象进行了一个弱引用。委托方让代理方执行操作,实际上是在委托类中向这个id类型指针指向的对象发送消息,而这个id类型指针指向的对象,就是代理对象。       通过上面这张图我们发现,其实委托方的代理属性本质上就是代理对象自身,设置委托代理就...

2018-09-04 17:11:48 1056

原创 IOS设计架构模式:适配器模式和观察者模式

一、适配器模式:        1、提出问题        朋友们在开发中有没有遇到过这种情况:开发中写了一个视图控件,虽然这个控件只是一个展示类的,并没有什么交互。但是在项目好几个地方都用到了这个控件了,你在给这个视图控件赋值的时候是怎么做的呢?是不是这么写的呢?- (void)loadModel:(Model *)model;这么写没有错,而且感觉很简单。但是有两点不好:1)视...

2018-08-31 17:41:21 582

原创 IOS设计架构模式:桥接-工厂-享元模式

一、桥接模式1、定义:将抽象部分与它的实现部分分离,使它们都可以独立地变化。2、原理:抽象层与实现层相分离,抽象层定义了供客户段调用的抽象接口,实现层提供了具体的逻辑,实现类的应用被封装到抽象层的实例中。3、UML图如下: 模式使用场景:1,如果一个系统需要在构建的抽象化角色之间增加更多的灵活性,避免在两个层次之间建立静态的继承关系,通过桥接模式可以使它们...

2018-08-24 17:46:40 390

原创 IOS架构模式MVC、MVP、MVVM

1、什么是架构?       没有明确的定义,属于设计的一方面,没明确的把设计和架构进行区分,它可以小到类与类之间的一个交互,大到不同模块之间,以及不同业务之间的交互,都可以从架构的层面去理解它。2、MVC架构方式      Model:模型,存数据。      View:视图,显示给用户看的界面。      Controller:控制器,可以直接与model对话,model通...

2018-08-22 17:34:37 301

原创 认识设计模式

一、设计模式        概念:为解决特定场景下的问题而定制的方案。二、设计模式的几大基本原则:为了构建可复用,可维护的代码        接口隔离原则:接口里面只做必要的事情,不做其他相关的事情;        开闭原则:对模块扩展开放,对修改关闭,.m里面的实现代码不改变;        里氏代换原则:任何类可以出现的地方,子类一定可以出现,子类跟父类可以相互替换,子类可...

2018-08-22 14:14:35 189

原创 UIViewController_Swizzled的原理和使用

实现的功能: 可用于跟踪复杂程序的一个非常简单的类库源码,查看每个viewController的层级嵌套顺序,显示一个UIViewController的时候日志记录一下 原理: 置换 UIViewController 的 viewDidAppear: 方法 Objecitve-C的重要特性是Runtime(运行时),在Interacting with the Runt

2017-09-06 16:25:44 658

转载 【2017年最全】 iOS面试题及答案

设计模式是什么? 你知道哪些设计模式,并简要叙述?设计模式是一种编码经验,就是用比较成熟的逻辑去处理某一种类型的事情。 1). MVC模式:Model View Control,把模型 视图 控制器 层进行解耦合编写。 2). MVVM模式:Model View ViewModel 把模型 视图 业务逻辑 层进行解耦和编写。 3). 单例模式:通过static关键词,声明全局变量。在整个进程运

2017-08-30 00:26:43 269

原创 Runtime的总结和应用

Runtime(运行时机制):oc代码最终都变成c语言的runtime代码。C语言和oc的区别:c语言编译的时候,就知道你等下会调用哪一个函数!!oc编译的时候,不知道你要调用哪一个方法。动态编译,只有在运行时候,[[obj alloc] init]以后,才能在内存开辟空间,才能在调用的时候找到你这个方法 。 Runtime消息机制: 1、导入<objc/message.h>头文件。 2、xc

2017-08-24 21:33:22 241

原创 多线程NSThread,GCD,NSOperation?

说到多线程呢,就需要先说下进程,进程是系统正在运行的一个应用程序,一个进程想要执行任务,就至少需要开启一个线程,为了提高资源的利用率,我们可以开启多个线程。但是一个cpu只能运行一个线程,多线程是cpu在多个线程来回调度切换的造成并发的假象,所以如果太多线程也会降低线程调用的频率,所以应当开启适当的线程。 ios程序一般会默认开启一条主线程,也称ui线程,主线程主要是用来刷新和显示界面,响

2017-08-24 14:38:10 216

原创 weui上传、预览和删除图片

weui框架暂时只有css文件,并没有js文件实现其功能,我在其html+css后面增加了js实现其功能,为大家提供方便,也为自己保存记录。<!doctype html><html> <head> <meta charset="UTF-8"> <title></title> <meta name="viewport" content="widt

2017-08-23 20:46:14 7527 5

原创 block块的用法

block块有3种用法:1.block作为对象的属性,2.block作为方法的参数,3.block作为返回值!!!(扩展非常强!!)。 我们现在先来看看第一种用法:block作为对象的属性,好处是把block传给了person类,person对象回调了block块。 Person.h@interface Person : NSObject/** block :ARC使用strong 非ARC

2017-08-23 20:34:27 716

原创 RAC的实现原理

RAC是什么?RAC — ReactiveCocoa(RAC)  Github 一个开源框架!!RAC — 函数响应编程框架!!RAC有什么用?帮助我们更简单霸气的处理事件!!RAC里面最常见和常用的类!!!(注意先pod 'ReactiveCocoa','4.0.0')·RACSignal : 信号类!通过RACSignal创建一个信号!! (默认是:

2017-04-18 21:33:54 431

转载 程序猿学习当中各个阶段的建议

回答阿里社招面试如何准备,顺便谈谈对于Java程序猿学习当中各个阶段的建议引言    其实本来真的没打算写这篇文章,主要是LZ得记忆力不是很好,不像一些记忆力强的人,面试完以后,几乎能把自己和面试官的对话都给记下来。LZ自己当初面试完以后,除了记住一些聊过的知识点以外,具体的内容基本上忘得一干二净,所以写这篇文章其实是很有难度的。  但是,最近问LZ的人实在是太

2017-03-24 11:55:04 213

转载 Masonry 使用中的一些整理

个人喜欢用纯代码写东西,其中用到最多的就是Masonry,我整理一些使用过程中一些点,方便以后使用.(基本的语法就不说了)首先说几点:我一般将数值类型的约束用mas_equalTo,而相对于某个控件,或者某个控件的某个约束,我会使用equalTo,如:make.size.mas_equalTo(CGSizeMake(100, 100));make.center.equalT

2017-03-24 09:55:23 219

图像去噪

图像去噪,

2014-06-05

空空如也

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

TA关注的人

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