自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (3)
  • 收藏
  • 关注

原创 OC-Block的本质

1.block的本质block其实就是封装了函数调用以及环境变量调用的对象。2.block的定义return_type (^blockName)(parameters)3.block的本质结构新建工程,在main.m中添加如下的代码:int age = 10;void (^blockame)(void) = ^{ NSLog(@"logBlock = %d", ...

2019-12-26 11:23:42 200

原创 Category底层结构原理分析

1.Category底层结构1.1 Category代码转成C++在项目中新建一个Person的分类为Person+Test,里面添加一些属性和类方法以及对象方法,如下:@interface Person (Test)@property (nonatomic, assign) int age;@property (nonatomic, copy) NSString *name;...

2019-12-25 17:26:54 290

原创 OC-KVO的本质分析

KVO的全称是Key-Value Observing,俗称“键值监听”,可以用于监听某个对象属性值的改变。1.KVO的使用代码如下:@interface Person : NSObject@property (nonatomic, assign) int age;@end----使用----@interface ViewController ()@property...

2019-12-23 21:42:22 137

原创 OC的本质

1.OC的本质是什么?OC的对象和类是基于C/C++的结构体来实现的。OC的代码转换过程如下:OC->C/C++ ->汇编语言 -> 机器语言。2.如何查看OC的代码转成了C/C++的代码呢?例如创建了一个工程,名字为OC-01,编写代码如下:@interface Student : NSObject@end@implementation Stude...

2019-12-22 11:03:07 331

原创 iOS-Super的理解

先给一个面试题:打印结果如下:答案是否与预期的设想一样呢?1.官方如何解释super关键字的?super的官方解释如下:从官方解释,可以明确了解到当我们使用“super”关键字发送消息的时候,编译器会转化为调用objc_msgSendSuper这个方法来发送消息。查看runtime的源码,了解objc_msgSendSuper的定义如下:objc_msgS...

2019-12-18 19:03:04 643

原创 RunTime-ISA底层了解

1.Runtime的简介Runtime是一套C语言的API,封装了很多动态性相关的函数;OC的动态性就是由Runtime来支撑和实现的。平时编写的OC代码,底层都是转换成了Runtime API进行调用。具体应用:利用关联对象给分类添加属性 遍历类的所有成员属性,动态修成其属性值(例如,修改textFile的占位文字颜色、字典转模型、自动归档解挡) 交换方法的实现 利用消息转...

2019-12-16 12:18:07 188

转载 关联对象 AssociatedObject 完全解析

写在前面这篇文章包含了两方面的内容: 使用关联对象为已经存在的类中添加属性 关联对象在底层 Objective-C 中的实现 注:如果你刚刚入门 iOS 开发,笔者相信了解第一部分的内容会对你的日常开发中有所帮助,不过第二部分的内容可能有些难以理解。如果你对关联对象的使用非常熟悉,可以直接跳过第一部分的内容,从这里开始深入了解其底层实现。关联对象的应用关于关...

2019-12-13 13:41:23 177

原创 AFN的内存泄漏问题

今天在用instrument检查内存泄漏时,看到了好多个内存,细看是因为AFN方法里面的,如下图:无比的好奇,百度之后,得到如下的解释:if (!_manager) { _manager = [AFHTTPSessionManager manager];}复制代码原因:session在ARC下不会及时释放我所用到的网络请求不是很复杂,不想再新建类去...

2019-12-11 20:07:36 967

原创 算法学习

1.逆波兰算法题目:求["2", "1", "+", "3", "*"];前置知识:(1)在求解逆波兰算法前,需要先了解四则运算的表达式,四则运算的表达式分3中:前缀表达式(又称波兰表达式)、中缀表达式、后缀表达(又称逆波兰表达式);以上三种表达式是等价的。(2)栈:栈是先入后出的,所以,这里可以借用栈的思路来解题。解题思路:(1)遍历数组;(2)遇到数...

2019-12-09 17:06:47 154

转载 适配器模式(转)

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

2019-12-09 12:12:27 88

原创 六大设计原则

1.单一指责原则(Single Responsibility Principle)单一职责原则主要是指 类的职责要单一,不能将太多的职责放在一个类中(高内聚、低耦合)。简单来说就是不同的功能封装在不同的类中,使用的时候提供接口就可以了。定义:一个对象应该只包含单一的职责,并且该职责被完整地封装在一个类中,即又定义有且仅有一个原因使类变更。由来:类A负责两个职责:职责P1,职责P...

2019-12-06 18:49:00 128

苹果审核警告:ITMS-91053: Missing API declaration

苹果审核警告:ITMS-91053: Missing API declaration

2024-04-24

tmpEffect.json

tmpEffect.json

2021-03-15

0423-地球与月亮.zip

用OpenGL模拟实现地球和月球自传,以及月球绕着地球公转的案例。本案例主要是OpenGL中的GLKit框架实现的。

2020-04-23

电子画板需要的资源.zip

本资源用于OpenGL 中实现电子画板的案例中需要用到的资源。如果需要请自行下载。里面包含了 清空和换画笔颜色时需要的声音文件,还有封装好的顶点着色器加载的方法。

2020-04-22

空空如也

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

TA关注的人

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