自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 block

一、block的本质 block本质上也是一个OC对象,它内部也有一个isa指针 block内部代码会封装到_block_func_0函数中,函数地址保存在FuncPtr中 执行block内部代码时是通过FuncPtr找到函数地址进行调用 int age = 10; void (^block)(void) = ^ { NSLog(@"%d", age); }; //block底层结构 struct __block_impl { void *isa; int Flags;

2021-01-19 15:37:48 304 1

原创 KVO的本质

KVO俗称“键值监听”,可以用于监听某个对象属性值的改变 利用runtimeAPI动态生成一个子类,并且让instance对象的isa指向这个全新的子类 当修改instance对象的属性时,会调用Foundation的_NSSetXXXValueAndNotify函数 _NSSetXXXValueAndNotify函数内部会调用 1、willChangeValueForKey: 2、父类原来的setter实现 3、didChangeValueForKey: didChangeValueForKey

2021-01-18 17:54:04 87

原创 NSString为什么用copy修饰

@property (nonatomic, copy) NSString *name1; @property (nonatomic, strong) NSString *name2; @end @implementation ViewController - (void)viewDidLoad { [super viewDidLoad]; //当为可变字符串的时候,

2018-01-08 10:48:28 192

原创 多线程之互斥锁

互斥锁小结互斥锁,就是使用了线程同步技术. 同步锁/互斥锁:可以保证被锁定的代码,同一时间,只能有一个线程可以操作. self :锁对象,任何继承自NSObject的对像都可以是锁对象,因为内部都有一把锁,而且默认是开着的. 锁对象 : 一定要是全局的锁对象,要保证所有的线程都能够访问,self是最方便使用的锁对象. 互斥锁锁定的范围应该尽量小,但是一定要锁住资源的读写部分. 加锁后程序执

2016-10-23 09:10:25 194

空空如也

空空如也

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

TA关注的人

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