自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

OdynO的专栏

一个很懒的Coder

  • 博客(37)
  • 收藏
  • 关注

原创 CITC iOS Developer Support

众擎 技术支持工作时间: 周一 至 周五 9:00 a.m. 至 17:00 p.m. 技术开发 邮箱: [email protected] 联系电话: 13880973980 产品推广优化 邮箱: [email protected] 联系电话 13770835710 C...

2019-09-16 10:20:27 213

转载 SDWebImage 4.X 源码分析 (一)

SDWebImage UML 类图SDWebImage 流程图1.UIImageView+WebCache接口分离原则:为特定功能提供特定的接口,不要使用单一的总接口包括所有功能,而是应该根据功能把这些接口分割,减少依赖,不能强迫用户去依赖那些他们不使用的接口。- (void)sd_setImageWithURL:(nullable NSURL *)url ...

2019-05-06 15:32:59 558

原创 iOS离屏渲染

界面渲染过程屏幕显示图像原理首先从过去的 CRT 显示器原理说起。CRT 的电子枪按照上面方式,从上到下一行行扫描,扫描完成后显示器就呈现一帧画面,随后电子枪回到初始位置继续下一次扫描。为了把显示器的显示过程和系统的视频控制器进行同步,显示器(或者其他硬件)会用硬件时钟产生一系列的定时信号。当电子枪换到新的一行,准备进行扫描时,显示器会发出一个水平同步信号(horizonal synchr...

2019-04-24 11:40:50 2108

原创 常用的

1. 触发离屏渲染的机制:shouldRasterize(光栅化) masks(遮罩) shadows(阴影) edge antialiasing(抗锯齿) group opacity(不透明) 复杂形状设置圆角等 渐变...

2019-04-24 11:31:57 128

原创 学习资源

不得不读的iOS技术文章https://www.jianshu.com/p/a47b3dd014f2

2019-04-24 10:35:50 121

转载 探讨iOS 中图片的解压缩到渲染过程

原文:https://www.jianshu.com/p/72dd074728d8一.图像从文件到屏幕过程图片显示到屏幕上是CPU与GPU的协作完成CPU: 计算视图frame,图片解码,需要绘制纹理图片通过数据总线交给GPU GPU: 纹理混合,顶点变换与计算,像素点的填充计算,渲染到帧缓冲区。 时钟信号:垂直同步信号V-Sync / 水平同步信号H-Sync。 iOS设...

2019-04-19 14:57:06 345

转载 UIModalPresentationStyle和UIModalTransitionStyle

UIModalPresentationStyle的样式解析typedefNS_ENUM(NSInteger, UIModalPresentationStyle) { UIModalPresentationFullScreen =0,//由下到上,全屏覆盖 UIModalPresentationPageSheet,//在portrait时是FullScreen,在lan...

2019-04-16 15:57:46 4765 1

原创 iPhone 界面尺寸以及各种图表尺寸

iPhone界面尺寸设备 屏幕尺寸 开发尺寸 状态栏高度 导航栏高度 tab栏 高度 高宽比 iPhone 4/4S 3.5英寸 320*480 40px 88px 98px 0.66 iPhone 5/5S/5C/SE 4英寸 ...

2019-03-05 16:08:14 16796

转载 iOS底层:程序Block原理

Block原理从源码说起int main(int argc, char * argv[]) { @autoreleasepool { int a = 0; void (^block)(void) = ^{ NSLog(@"%d",a); }; block(); return ...

2019-02-27 11:09:56 150

原创 MVC, MVP, MVVM

MVCM 表示 Model , 专门用来处理业务逻辑,不干别的事情。 V 表示View, 专注页面布局和数据显示。 C 表示Controller  翻译用户的输入,操作模型和视图。例如,用户在界面点击了一个“计算”的按钮,View 把计算的请求传递给Controller,Controller找到或者创建Model,执行业务逻辑:计算薪水。MVC的缺点:依赖太多View ...

2019-01-30 11:17:11 136

原创 Runtime四: 应用

Runtime应用场景非常多,下面就介绍一些常见的应用场景。关联对象(Objective-C Associated Objects)给分类增加属性 方法魔法(Method Swizzling)方法添加和替换和KVO实现 消息转发(热更新)解决Bug(JSPatch) 实现NSCoding的自动归档和自动解档 实现字典和模型的自动转换(MJExtension)一. 关联对象(Objec...

2018-12-11 17:01:28 109

原创 Runtime三: 消息转发

动态方法解析:1. +resolveInstanceMethod- (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. //执行foo函数 [self performSelector...

2018-12-11 16:02:09 119

原创 Runtime二: 数据结构

对象struct objc_object { Class isa OBJC_ISA_AVAILABILITY;};类struct objc_class { Class isa OBJC_ISA_AVAILABILITY;#if !__OBJC2__ Class super_class ...

2018-12-10 17:30:47 149

原创 【总结】网络相关

HTTP与HTTPS有什么区别HTTP协议传输的数据都是未加密的,也就是明文的。HTTPS加入了SSL协议(Secure Sockets Layer)区别:1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。      2、http是超文本传输协议,明文传输,https则是可进行加密传输、身份认证。      3、不同的连接方式,用的端口也不一样,前者是8...

2018-11-01 16:07:33 100

翻译 Realm Objective‑C 3.0.1 学习笔记(一)基础知识

 官方文档: realm疑问:1. 双向关系 (反向关系)RLMLinkingObjects2. RLMArray 只能够包含 RLMObject 类型,诸如 NSString 之类的基础类型是无法包含在内的。 1. Realm一般储存位置根据Data Storage Guidelines 的说明/Documents  一般是用来保存用户产生的文本和文件,一般不要重复生...

2018-08-23 14:36:55 259

原创 AFNetworking

NSURLSession由三个基本模块构成:NSURLSession NSURLSessionConfiguation NSURLSessionTaskNSURLSessionDefaultSession               将cache和creditials储存于本地 Ephemeral Session       对数据更加保密安全,并不会向本地储存任何数据,将ca...

2018-08-21 16:38:19 345

转载 【总结】OC特性

1.面向对象特点封装(encapsulation)       封装是隐藏对象的属性和方法的具体实现,仅对外公开接口,控制属性的读取权限。       属性是对字段的封装。       项目是对类的封装。继承         使子类具有父类的各种属性和方法,另外子类可以覆盖父类的属性和方法或追加新的属性和方法。(继承的方式,公有继承[public]、私有继承[private]、保护...

2018-08-21 16:36:55 512

原创 【总结】coreText & TextKit

TextKit,CoreText关系TextKit属于UIKit framework中CoreText 更底层可以从图中看出,原生的文本控件都是构建在TextKit之上的,使用TextKit进行排版和渲染。而UIWebView是构建在WebKit上的,不能使用TextKit功能。TextKitTextContainer Layout Manager Text Stora...

2018-08-07 10:51:52 1316

原创 AVFoundation(四)滤镜视频录制流程

https://www.jianshu.com/p/4701d006b514核心思路1. GPUImageVideoCamera    采集视频: CMSampleBufferRef                                                  采集音频:CMSampleBufferRef2. 渲染滤镜:filter3. 输出: 显示 GPUI...

2018-08-01 15:24:24 530

原创 AVFoundation(三)视频捕获 视频读写

1. AVCaptureSession输入输出修改(BOOL)canAddInput:(AVCaptureInput *)input;- (void)addInput:(AVCaptureInput *)input;- (void)removeInput:(AVCaptureInput *)input;- (BOOL)canAddOutput:(AVCaptureOutput *...

2018-07-31 15:21:27 724

原创 AVPlayer(二)AVAsset

https://www.sunyazhou.com/2017/06/16/Learning-AV-Foundation-AVAsset-Basic/?utm_source=tuicool&utm_medium=referralAVAsset 专辑一个抽象类,里面包含曲目、格式、时长, 以及元数据NSData(二进制的bytes).@property (nonatomic, r...

2018-07-31 13:52:56 2622

原创 AVPlayer(一)AVPlayerItem

AVPlayerItem 资源管理对象,它控制着视频从创建到销毁的诸多状态1.播放状态控制typedef NS_ENUM(NSInteger, AVPlayerItemStatus) { AVPlayerItemStatusUnknown,//未知 AVPlayerItemStatusReadyToPlay,//准备播放 AVPlayerItemStatusF...

2018-07-30 19:30:07 1668

原创 【总结】weak strong assign copy 堆和栈

1. weak assignweak:  底层使用hash存储,value为所有弱引用的地址,当对象被释放,会将value中所有的地址对象都设为nil           delegate, IBOutlet为weakassign:等同于unsafe unretain, 会有野指针,但是速度比weak稍微快一点copy:  block为copy2 堆和栈全局(静态)区存...

2018-07-26 15:31:59 1266

原创 【总结】GPUImage

实现的基本原理GPUImageStillCamera 照片GPUImageVideoCamera 视频   ------>    GPUImageFilter    ------>      GPUImageView显示1.拍摄照片丶视频的时候添加滤镜//开启前置摄像头640*480self.videoCamera = [[GPUImageVideoCamera a...

2018-07-26 14:28:28 321

转载 Runtime一: Objective-C语言的动态性总结(编译时与运行时)

Objective-C 是基于C的,它为C添加了面向对象的特性。它将很多静态语言在编译和链接时期做的事放到了runtime运行时来处理编译时: 编译时只进行最基本的检查报错,包括语法分析,查看类型是否匹配,方法是否申明将程序代码翻译成计算机能够识别的语言(例如汇编等)运行时: 先决定对象的类型,再去决定调用的方法任何调用方法本质:就是发送一个消息。方法的调用实际就是告诉对象...

2018-07-26 11:23:45 173

转载 理解UITouch,UIEvent,UIGestureRecognizer以及UIResponder

UITouch:一个触摸对象代表一根手指对屏幕的接触以及在屏幕上的移动。其生命周期从手指接触屏幕开始,到手指离开屏幕为止。手势:一个手势需要一根或多根手指完成,即一个手势包含一个或多个UITouch对象。触摸序列:用于描述手势发生时(多个)手指接触屏幕的过程。整个过程从构成手势的第一根手指接触屏幕开始,到手势进行完毕时的最后一个手指离开屏幕为止。UIEvent:代表iOS系统同外界互动时所发生的事...

2018-07-16 11:11:56 856

原创 字符集、编码、URL编码、base64编码

新加:url Encode/ Decode: 主要用于解决URL中包含的非法字符,比如中文等base64: 简单的加密,把字符加密成二机制数据md5:一般为不可逆的加密算法 1. ASCII码2. GB2312等中国人们得到计算机时,已经没有可以利用的字节状态来表示汉字,况且有6000多个常用汉字需要保存呢。但是这难不倒智慧的中国人民,我们不客气地把那些127号之后...

2018-05-30 14:37:09 1841 1

转载 iOS中的异常

Objective-C Exception异常通常包括一下几种NSInvalidArgumentException非法参数异常(NSInvalidArgumentException)是 Objective - C 代码最常出现的错误,传入非法参数导致异常,其中尤以nil参数为甚。1. 集合数据的参数传递NSDictionary不能添加nil的对象       不能插入nil的对象        2...

2018-05-24 16:47:05 693

转载 GPUImage基础入门

图像处理流程数据源需要实现GPUImageOutput接口各个环节(包括最后处理输出结果)的对象都要实现GPUImageInput接口每个处理环节都是从上一个环节获取图像数据,进行处理后再将结果传递给下一个。下游的处理对象称为上一步的target。使用addTarget:方法为处理链路添加每个环节的对象。一个常见的链条如下:   数据源(GPUImageOutput)->  各类filter...

2018-05-23 16:13:14 402

原创 iOS动画(零)总揽

iOS常用动画种类:UIView动画CoreAnimationUIView主要利用:1.动画属性frameboundscentertransformalphabackgroundColorcontentStretch2.UIViewAnimationOptionsUIViewAnimationOptionLayoutSubviews //进行动画时布局子控件 ...

2018-05-17 16:01:35 178

原创 【总结】iOS 中的文件存储

应用沙盒1)每个iOS应用都有自己的应用沙盒(应用沙盒就是文件系统目录),与其他文件系统隔离。应用必须待在自己的沙盒里,其他应用不能访问该沙盒2)应用沙盒的文件系统目录,如下图所示(假设应用的名称叫Layer)3)应用沙盒结构分析 应用程序包:(上图中的Layer)包含了所有的资源文件和可执行文件 Documents:保存应用运行时生成的需要持久化的数据,iTunes...

2018-05-10 17:15:20 2345

转载 SSL/TLS协议四次握手

SSL/TSL协议基本过程:(1) 客户端向服务器端索要并验证公钥。(2) 双方协商生成"对话密钥"。(3) 双方采用"对话密钥"进行加密通信。1 客户端发出请求(ClientHello)首先,客户端(通常是浏览器)先向服务器发出加密通信的请求,这被叫做ClientHello请求。在这一步,客户端主要向服务器提供以下信息。(1) 支持的协议版本,比如TLS 1.0版。(2) 一个客户端生成的...

2018-05-09 17:28:27 9322 1

转载 AFNetwork框架(一)

首先给出使用例子AFURLSessionManager 使用方法:https://blog.csdn.net/u011993697/article/details/51284664AFURLSessionManager1.请求服务器数据NSURLSessionConfiguration *configuration = [NSURLSessionConfiguration defaultSessi...

2018-05-07 17:16:11 1710

转载 AFNetwork框架(零)

我们首先来看一下一个简单的NSURLSession请求代码: NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration] delegate:self delegateQueue:[[NSOperationQueue ...

2018-05-07 17:03:35 192

转载 iOS class:实例对象、类对象、元类和isa指针

转载请注明出处http://blog.csdn.net/u014205968/article/details/64921601面向对象中每一个对象都必须依赖一个类来创建,因此对象的isa指针就指向对象所属的类根据这个类模板能够创建出实例变量、实例方法等。 比如有如下代码NSString* str = @"Hello World";通过上文我们知道这个str对象本质就是一个objc_object结构...

2018-05-07 11:19:52 488

转载 NSKeyedArchiver

转自:https://www.jianshu.com/p/2beb453fb9d31.1 什么是对象归档归档是一种很常用的文件储存方法,几乎任何类型的对象都能够被归档储存(实际上是一种文件保存的形式)。苹果提供了NSKeyedArchiver和NSKeyedUnarchiver两个类以供我们把对象序列化和反序列化,在存储之前使用NSKeyedArchiver进行序列化操作,并且写入本地文件,在使用...

2018-04-24 16:43:52 901

转载 UML类图

出处:https://blog.csdn.net/a19881029/article/details/8957441类之间大体分为6种关系:1. 关联关系(Association) 是一种"has a"关系2. 继承(Inheritance)是一种父子关系3. 实现关系(Realization/Implementation)4. 依赖关系(Dependency)是一种“use a”关系5. 聚合关...

2018-04-23 17:22:28 1124

空空如也

空空如也

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

TA关注的人

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