自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 iOS - 聊聊 autorelease 和 @autoreleasepool

前言: 作为 iOS 开发者,在面试过程中经常会碰到这样一个问题:在 ARC 环境下,autorelease 对象在什么时候释放?这也是 iOS 内存管理的重要知识点,本文将针对这道面试题,讲解 autorelease 和 @autoreleasepool。苹果在 iOS5 中引入了ARC(Automatic Reference Counting)自动引用计数,通过LLVM编译器和Runt...

2020-03-17 01:05:23 322

原创 iOS - 关于 KVO 的一些总结

1. 什么是 KVOKVO的全称是Key-Value Observing,俗称“键值观察/监听”,是苹果提供的一套事件通知机制,允许一个对象观察/监听另一个对象指定属性值的改变。当被观察对象属性值发生改变时,会触发KVO的监听方法来通知观察者。KVO是在MVC应用程序中的各层之间进行通信的一种特别有用的技术。KVO和NSNotificationCenter都是iOS中观察者模式的一种实现。...

2020-03-05 21:52:13 358

原创 iOS - 关于 KVC 的一些总结

1. 什么是 KVCKVC的全称是Key-Value Coding(键值编码),是由NSKeyValueCoding非正式协议启用的一种机制,对象采用这种机制来提供对其属性的间接访问,可以通过字符串来访问一个对象的成员变量或其关联的存取方法(getter or setter)。通常,我们可以直接通过存取方法或变量名来访问对象的属性。我们也可以使用KVC间接访问对象的属性,并且KVC还可以访...

2020-03-05 21:48:05 407

原创 iOS - 多线程(四):NSOperation

iOS - 多线程 系列文章iOS - 多线程(一):初识iOS - 多线程(二):pthread、NSThreadiOS - 多线程(三):GCDiOS - 多线程(四):NSOperationiOS - 多线程(五):线程同步方案1. NSOperation 初识1.1 NSOperation 介绍NSOperation 是 OC 语言中基于 GCD 的面向对象的封装;提...

2020-02-28 23:47:44 221

原创 iOS - 多线程(三):GCD

iOS - 多线程 系列文章iOS - 多线程(一):初识iOS - 多线程(二):pthread、NSThreadiOS - 多线程(三):GCDiOS - 多线程(四):NSOperationiOS - 多线程(五):线程同步方案1. GCD 初识1.1 GCD 介绍全称是 Grand Central Dispatch,也简称 Dispatch;纯 C 语言,提供了非常多...

2020-02-28 23:36:36 316

原创 iOS - 多线程(二):pthread、NSThread

iOS - 多线程 系列文章iOS - 多线程(一):初识iOS - 多线程(二):pthread、NSThreadiOS - 多线程(三):GCDiOS - 多线程(四):NSOperationiOS - 多线程(五):线程同步方案1. pthread1.1 pthread 介绍全称 POSIX Thread,POSIX(Portable Operating System I...

2020-02-28 22:46:08 186

原创 iOS - 多线程(一):初识

iOS - 多线程 系列文章iOS - 多线程(一):初识iOS - 多线程(二):pthread、NSThreadiOS - 多线程(三):GCDiOS - 多线程(四):NSOperationiOS - 多线程(五):线程同步方案1.线程和进程1.1 线程的定义线程是资源分配的最小单位,也是处理器调度的基本单位;线程是进程的基本执行单元,一个进程的所有任务都在线程中执行;...

2020-02-28 22:34:23 162

原创 深入浅出 RunLoop(五):RunLoop 与 NSTimer

RunLoop 系列文章深入浅出 RunLoop(一):初识深入浅出 RunLoop(二):数据结构深入浅出 RunLoop(三):事件循环机制深入浅出 RunLoop(四):RunLoop 与线程深入浅出 RunLoop(五):RunLoop 与 NSTimer深入浅出 RunLoop(六):相关面试题RunLoop 与 NSTimer由前面的文章我们知道,NSTimer是由R...

2020-02-27 20:35:10 485

原创 深入浅出 RunLoop(四):RunLoop 与线程

RunLoop 系列文章深入浅出 RunLoop(一):初识深入浅出 RunLoop(二):数据结构深入浅出 RunLoop(三):事件循环机制深入浅出 RunLoop(四):RunLoop 与线程深入浅出 RunLoop(五):RunLoop 与 NSTimer深入浅出 RunLoop(六):相关面试题RunLoop 与线程的关系苹果官方文档中,RunLoop的相关介绍写在线程编...

2020-02-27 20:06:00 1168

原创 深入浅出 RunLoop(三):事件循环机制

RunLoop 系列文章深入浅出 RunLoop(一):初识深入浅出 RunLoop(二):数据结构深入浅出 RunLoop(三):事件循环机制深入浅出 RunLoop(四):RunLoop 与线程深入浅出 RunLoop(五):RunLoop 与 NSTimer深入浅出 RunLoop(六):相关面试题前言前面我们介绍了RunLoop的基本概念以及相关数据结构,这篇我们来讲解一...

2020-02-27 19:35:19 554

原创 深入浅出 RunLoop(二):数据结构

RunLoop 系列文章深入浅出 RunLoop(一):初识深入浅出 RunLoop(二):数据结构深入浅出 RunLoop(三):事件循环机制深入浅出 RunLoop(四):RunLoop与线程深入浅出 RunLoop(五):RunLoop与NSTimer深入浅出 RunLoop(六):相关面试题CFRunLoopRefRunLoop对象的底层就是一个CFRunLoopRef结构...

2020-02-27 19:11:15 304

原创 深入浅出 RunLoop(一):初识

RunLoop 系列文章深入浅出 RunLoop(一):初识深入浅出 RunLoop(二):数据结构深入浅出 RunLoop(三):事件循环机制深入浅出 RunLoop(四):RunLoop 与线程深入浅出 RunLoop(五):RunLoop 与 NSTimer深入浅出 RunLoop(六):相关面试题RunLoop 简介运行循环,在程序运行过程中循环做一些事情(如接收消息、处...

2020-02-27 18:54:18 407

原创 深入浅出 Runtime(六):相关面试题

Runtime 系列文章深入浅出 Runtime(一):初识深入浅出 Runtime(二):数据结构深入浅出 Runtime(三):消息机制深入浅出 Runtime(四):super 的本质深入浅出 Runtime(五):具体应用深入浅出 Runtime(六):相关面试题Q:你了解 isa 指针吗?isa指针用来维护对象和类之间的关系,并确保对象和类能够通过isa指针找到对应的方...

2020-02-26 01:34:48 280

原创 深入浅出 Runtime(五):具体应用

待更

2020-02-26 01:33:54 146 1

原创 深入浅出 Runtime(四):super 的本质

Runtime 系列文章深入浅出 Runtime(一):初识深入浅出 Runtime(二):数据结构深入浅出 Runtime(三):消息机制深入浅出 Runtime(四):super 的本质深入浅出 Runtime(五):具体应用深入浅出 Runtime(六):相关面试题1. objc_super 与 objc_msgSendSuper我们先来看两个数据结构objc_super和o...

2020-02-25 20:30:58 433

原创 深入浅出 Runtime(三):消息机制

Runtime 系列文章深入浅出 Runtime(一):初识深入浅出 Runtime(二):数据结构深入浅出 Runtime(三):消息机制深入浅出 Runtime(四):super的本质深入浅出 Runtime(五):具体应用深入浅出 Runtime(六):相关面试题1. objc_msgSend 方法调用流程OC中的方法调用,其实都是转换为objc_msgSend()函数的调...

2020-02-25 19:58:46 240

原创 深入浅出 Runtime(二):数据结构

Runtime 系列文章深入浅出 Runtime(一):初识深入浅出 Runtime(二):数据结构深入浅出 Runtime(三):objc_msgSend方法调用流程深入浅出 Runtime(四):super的本质深入浅出 Runtime(五):具体应用深入浅出 Runtime(六):相关面试题1. objc_objectObjective-C的面向对象都是基于C/C++的数据结...

2020-02-25 18:40:44 270

原创 深入浅出 Runtime(一):初识

Runtime 系列文章深入浅出 Runtime(一):初识深入浅出 Runtime(二):数据结构深入浅出 Runtime(三):objc_msgSend方法调用流程深入浅出 Runtime(四):super的本质深入浅出 Runtime(五):具体应用深入浅出 Runtime(六):相关面试题Runtime 简介Runtime 是一个用C、汇编编写的运行时库,包含了很多 C ...

2020-02-24 21:09:11 545 1

原创 OC - Block 详解

1.Block 的使用Block 是什么?块,封装了函数调用以及调用环境的 OC 对象,Block 的声明// 1.@property (nonatomic, copy) void(^myBlock1)(void);// 2.BlockType:类型别名typedef void(^BlockType)(void);@property (nonatomic, copy) BlockT...

2020-02-23 22:07:40 1078

原创 OC - Association 关联对象

1.关联对象1.1 使用场景默认情况下,由于分类底层结构的限制,不能直接给 Category 添加成员变量,但是可以通过关联对象间接实现 Category 有成员变量的效果。传送门:OC - Category 和 Extension1.2 使用方法#import "Person.h"@interface Person (Test)@property (nonatomic, assig...

2020-02-22 02:26:02 378

原创 OC - load 和 initialize

1.load1.1 load 方法的调用① 调用时刻:+load方法会在Runtime加载类、分类时调用(不管有没有用到这些类,在程序运行起来的时候都会加载进内存,并调用+load方法);每个类、分类的+load,在程序运行过程中只调用一次(除非开发者手动调用)。② 调用方式: 系统自动调用+load方式为直接通过函数地址调用,开发者手动调用+load方式为消息机制objc_msgSen...

2020-02-19 23:07:19 262

原创 OC - Category 和 Extension

1.Category 分类1.1 Category 的使用场合① 给一个类添加新的方法,可以为系统的类扩展功能。② 分解体积庞大的类文件,可以将一个类按功能拆解成多个模块,方便代码管理。③ 创建对私有方法的前向引用:声明私有方法,把 Framework 的私有方法公开等。直接调用其他类的私有方法时编译器会报错的,这时候可以创建一个该类的分类,在分类中声明这些私有方法(不必提供方法实现),...

2020-02-19 20:00:37 190

原创 OC - 属性关键字和所有权修饰符

1. 属性关键字有哪些?分类属性关键字原子性atomic、nonatomic读写权限readwrite、readonly、setter、getter内存管理assign、weak、unsafe_unretained、retain、strong、copy可空性(nullable、_Nullable 、__nullable)、(nonnull、_Nonn...

2020-02-19 00:49:15 319

空空如也

空空如也

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

TA关注的人

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