自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

转载 GCD死锁,及同步、异步、串行和并行队列组合情形

一、概述1)队列用来存储代码任务,线程用来运行代码任务;2)main()函数作为程序入口,整个程序默认运行在主线程中,程序代码任务默认存放在主队列中;3)以下所谓阻塞线程是针对主线程而言(子线程阻塞在所不问,自己手动管理);队列阻塞主要是针对主队列(子队列阻塞在所不问,自己手动管理);4)在线程中(如:主线程)添加block任务(以下简称“B”)到某个队列中,添加B...

2019-02-14 16:40:00 174

转载 block本质探寻八之循环引用

说明:阅读本文,请参照之前的block文章加以理解;一、循环引用的本质//代码——ARC环境void test1(){ Person *per = [[Person alloc] init]; per.age = 10; per.block = ^{ NSLog(@"-------1"); };}...

2019-01-18 18:18:00 120

转载 block本质探寻七之内存管理

说明:<1>阅读本问,请参照block前述文章加以理解;<2>环境:ARC;<3>变量类型:基本数据类型或者对象类型的auto局部变量;一、三种情形//代码void test1(){ int num = 10; __block int age = 20; Person *per = [[Pe...

2019-01-17 14:01:00 107

转载 block本质探寻六之修改变量

说明:<1>阅读本文章,请参照前面的block文章加以理解;<2>本文的变量指的是auto类型的局部变量(包括实例对象);<3>ARC和MRC两种模式均适用;一、无法修改的原因//代码很明显,强行给age赋值会报错;void test1(){ int age = 10; block = ^{...

2019-01-16 11:09:00 108

转载 block本质探寻五之atuto类型局部实例对象

说明:阅读本文章,请参考之前的block文章加以理解;一、栈区block分析//代码//ARCvoid test1(){ { Person *per = [[Person alloc] init]; per.age = 10; ^{ NSLog(@"age:%d", per....

2019-01-15 12:29:00 108

转载 block本质探寻四之copy

说明:<1>阅读本文,最好阅读之前的block文章加以理解;<2>本文内容:三种block类型的copy情况(MRC)、是否深拷贝、错误copy;一、MRC模式下,三种block类型的copy情况//代码void test1(){ int age = 10; void(^block1)(void) ...

2019-01-14 11:07:00 104

转载 block本质探寻三之block类型

一、oc代码提示:看本文章之前,最好按顺序来看;//代码void test1(){ int age = 10; void(^block1)(void) = ^{ NSLog(@"block1----"); }; void(^block2)(void) = ^{ NSLo...

2019-01-10 18:16:00 112

转载 block本质探寻二之变量捕获

一、代码说明:本文章须结合文章《block本质探寻一之内存结构》和《class和object_getClass方法区别》加以理解;//main.m#import <Foundation/Foundation.h>int a = 10;static int b = 10;int main(int argc, const char * argv...

2019-01-09 18:33:00 138

转载 block本质探寻一之内存结构

一、代码——命令行模式//main.m#import <Foundation/Foundation.h>struct __block_impl { void *isa; int Flags; int Reserved; void *FuncPtr;};struct __main_block_desc_0 ...

2019-01-09 10:58:00 111

转载 kvo本质探寻

一、概述1.本文章内容,须参照本人的另一篇博客文章“class和object_getClass方法区别”加以理解;2.基本使用://给实例对象instance添加观察者,监听该实例对象的某个属性值的变化[self.per1 addObserver:self forKeyPath:@"age" options:NSKeyValueObservingOptionOld |...

2018-12-29 16:38:00 112

转载 class和object_getClass方法区别

一、概述如上图:1.内存创建一个instance实例对象(Person *per),同时会创建一个与之对应的类对象(Class perClass)和元类对象(Class perMeta);注:实例对象通过calloc可创建多个,但类对象和元类对象在内存中只有一份,只创建一次;2.对象的本质,其实是C语言的结构体struct,各个对象的内存结构为:per:is...

2018-12-28 15:52:00 362

转载 OpenGL ES天空盒子效果

一、理解利用GLKBaseEffect,自定义顶点着色器和片元着色器,结合天空盒子,展示效果二、技术代码CCSkyBoxEffect:天空盒子效果类;CCSkyboxShader.vsh:顶点着色器;CCSkyboxShader.fsh:片元着色器;//立方体场景贴图纹理处理及顶点数据处理- (id)init{ self = [supe...

2018-12-20 17:35:00 184

转载 仿微信选取图片发表朋友圈功能

一、思路第一,图片拖拽位置互换/删除,参照第三方;第二,图片用scrollview浏览,缩放用zoomToRect,不用CGAffineTransformScale;其次,还要返回当前缩放图片//放回当前缩放图片- (UIView *)viewForZoomingInScrollView:(UIScrollView *)scrollView{ for...

2018-12-13 18:03:00 282

转载 OpenGL ES画板

一、概述利用自定义顶点和片元着色器渲染,并且设置图片纹理颜色为画笔颜色二、核心代码- (void)renderLineFromPoint:(CGPoint)start toPoint:(CGPoint)end{ //顶点缓存区 static GLfloat *vertexBuffer = NULL; //顶点Max sta...

2018-12-10 12:05:00 320

转载 OpenGL ES 渲染立体图形

一、理解顶点数据存储在申请的缓冲区中,其由数据总线传递给着色器(如果是片元着色器,还须将顶点转换成片元),再由着色器最终渲染到涂层上;二、思路1.设置涂层;2.创建上下文;3.清空缓存区;4.创建渲染缓存区和帧缓存区;5.开始绘制;三、核心代码//最终渲染- (void)renderLayer{ //设置窗口背景颜色 ...

2018-12-05 09:53:00 246

转载 OpenGL 球体世界

一、类似公自转二、核心代码//图形渲染void RenderScene(){ //清楚缓存区:颜色缓存区、深度缓存区、模版缓存区 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT|GL_STENCIL_BUFFER_BIT); //设置颜色:地板、甜甜圈、球体 GLflo...

2018-11-26 18:12:00 627

转载 OpenGL 混合功能

一、概念:简言之,即在颜色缓存区和深度缓存区中,新旧颜色的覆盖和替换问题;已经存在于缓存区的为目标颜色,即将进入缓存区的为源颜色;二、应用场景:在不透明的图形前绘制一个透明的图形;三、主要代码实现//核心代码void RenderScene(){ //清除缓存区 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFF...

2018-11-19 16:22:00 108

转载 静态库打包——.a和.framework文件

参考链接步骤:适配所有的模拟器和真机——生成.a文件<1>建一个静态库工程<2>生成.a文件(注意添加类.h和.m文件)同理:接入任意款真机,同上述操作,生成真机的.a文件;<4>合并模拟器和真机.a文件,并生成新的.a文件——此处把模拟器和真机的.a文件剪切到了桌面上...

2018-11-08 16:24:00 167

转载 Mac端 Open GL初探

一、环境配置1.创建macOS工程2.添加OpenGL.framework和GLUT.framework两个系统库3.拖入资源文件如果libGLTools.a问价先拖入到工程其他位置,后再移到frameworks文件夹下,则链接错误4.配置include文件夹的位置此处是相对位置:“$(SRCROOT)/”+“Mac环境搭建...

2018-11-07 17:15:00 164

转载 图片裁剪/滤镜渲染

一、图片裁剪//拖动手势- (void)handlePanGes:(PanGesRec *)panGes{ CGPoint translation = [panGes translationInView:self.imgView.superview]; CGPoint movePoint = panGes.movedPoint; ...

2018-10-26 15:58:00 150

空空如也

空空如也

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

TA关注的人

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