自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 总结UML类图几种关系画法

UML类图几种关系画法

2025-02-20 21:29:36 235

原创 【iOS】UITableViewCell的重用问题解决方法

但是如果偏要走remove子视图的方法也不是不行,我们可以巧妙点,从复用池取出来要被复用的cell之后直接重新alloc初始化一下这个被复用的cell,相当于之前清空了原本保存的所有子视图的全部数据,而原本添加到cell上的子视图都还在,只是没有数据不显示罢了,这也是很好的手段。时都会为对应行组的cell重新添加那些子视图上的数据(相当于覆写了旧数据),我们只需要在所有的重新添加数据操作之前讲被复用的cell上子视图的数据全删了就行。这个方法,方法的意思就是“出列可重用的cell”,因而只要将它换为。

2024-08-15 11:15:37 1218

原创 【iOS】CALayer详解

当对非RootLayer的部分属性进行修改时,默认会自动产生一些动画效果而这些属性称为AnimatableProperties(可动画属性)。列举几个常见的bounds:用于设置CALayer的宽度和高度。修改这个属性会产生缩放动画。backgroundColor:用于设置CALayer的背景色。修改这个属性会产生背景色的渐变动画。position:用于设置CALayer的位置。修改这个属性会产生平移动画。可以通过动画事务(CATransaction)关闭。

2024-08-13 19:03:09 650

原创 【iOS】iOS触摸事件详解

提供了与硬件交互的底层接口,而作为管理设备用户界面的核心进程,依赖 IOKit 提供的硬件事件和数据来做出相应的用户界面更新。简而言之,IOKit 是 SpringBoard 能够处理硬件事件并更新用户界面的基础,二者协同工作以确保 iOS 设备的正常操作和用户体验。IOHIDEvent:底层的硬件输入事件,处理来自设备(如触摸屏、键盘等)的原始输入。UIEvent:系统级别的用户界面事件,是对IOHIDEvent的封装,代表各种用户输入(如触摸、手势等)。

2024-08-11 23:46:13 1455

原创 【iOS多线程(五)】多线程问题总结

答:自定义NSOperation可以通过重写main或者start方法。重写main方法,不需要管理操作的状态属性isExecuting和isFinished。重写start方法需要管理操作的状态属性。

2024-08-10 15:45:36 1096

原创 【iOS多线程(四)】线程安全+13种锁

互斥锁属于sleep-waiting类型的锁。假设线程A想要通过pthread_mutex_lock操作去得到一个临界区的锁,而此时这个锁正在被线程B锁持有,那么线程A就会被阻塞(blocking),Core0会在此时进行上下文切换(Contex Switch)将线程A置于等待队列中,此时Core0就可以运行其他的任务(例如另一个线程C)而不必进行忙等待。使用案例:假设我们有一个数组,里面有两个线程,一个是添加数组,一个是删除数组,我们先调用删除数组,再调用添加数组,但是在数组为空的时候不调用删除数组。

2024-08-08 15:46:43 1497

原创 【iOS多线程(三)】优先级反转问题

概述优先级:线程C>线程B>线程A。优先级较低的线程B,通过压制优先级更低的线程A,比高优先级的线程C先执行了。解释:假如线程A拿到一个资源后加锁,线程C因为也需要这个资源于是挂起等待A执行结束。这一段符合逻辑没问题,但是此时线程B因为优先级比线程A高,直接抢占CPU,线程B执行完后,线程A执行,A解锁释放后,C再执行。这就导致原本优先级较低的线程B,通过压制线程A,比高优先级的线程C先执行了。下面这个时序图就是一个经典的优先级反转线程A在一个比较低的优先级上工作, 假设是10吧。

2024-08-08 09:31:18 1121

原创 【iOS多线程(二)】GCD其他方法详解

以一个停车场的运作为例。简单起见,假设停车场只有三个车位,一开始三个车位都是空的。这时如果同时来了五辆车,看 门人允许其中三辆直接进入,然后放下车拦,剩下的车则必须在入口等待,此后来的车也都不得不在入口处等待。这时,有一辆车离开停车场,看门人得知后,打开 车拦,放入外面的一辆进去,如果又离开两辆,则又可以放入两辆,如此往复。在这个停车场系统中,车位是公共资源,每辆车好比一个线程,看门人起的就是信号量的作用。我们使用GCD的时候如何让线程同步,也有多种方法。

2024-08-07 19:41:15 1022

原创 【iOS多线程(一)】GCD详细总结-同步异步/串行并发

1. GCD简介2. GCD任务和队列任务队列 (dispatch是派遣的意思)队列的创建方法和获取方法3.我的总结:同步和异步函数,并行和并发队列同步异步函数串行并发队列是否开启新线程,串行还是并发执行任务,如何分析?4. GCD基本使用同步串行队列同步并行队列异步串行队列异步并行队列sync函数造成的线程死锁5. 进程间通信6. GCD的其他方法6.1 GCD栅栏方法:dispatch_barrier_async6.2、GCD 延时执行方法:dispatch_after。

2024-08-07 12:03:27 1517

原创 【iOS】Tagged Pointer

答:Tagged Pointer是一种优化技术,用于存储小对象(如NSNumber、NSDate和NSString)的值。与普通对象不同,Tagged Pointer直接将数据存储在指针本身,而不是存储在堆上的内存块。例如,在64位系统上,如果指针的最高位为1,则该指针可能是Tagged Pointer。与之前介绍的 Tagged Pointer 相比,这种 Packed Tagged Pointer 的优势是能够存储更多的数据信息,提高了存储密度。如果检测一个指针是否是Tagged Pointer?

2024-08-06 19:27:23 1011 2

原创 【iOS】class的底层结构总结

class的底层结构总结

2024-08-06 10:38:17 1067

原创 【iOS】KVO详细总结

KVO详细总结

2024-08-05 10:13:42 865

原创 【iOS】copy&strong原理+深浅拷贝+完全拷贝

copy&strong原理+深浅拷贝+完全拷贝

2024-08-02 12:05:25 1041

原创 【iOS】iOS内存五大分区

iOS内存五大分区

2024-08-01 19:38:42 1977

原创 【iOS】消息传递和消息转发

消息传递和消息转发

2024-07-31 19:37:19 985

原创 【iOS】isa指针的结构(位域)

isa指针的结构(位域)

2024-07-30 21:50:32 1202

原创 【iOS】通知的底层原理(实现)

【iOS】通知的底层原理(实现)

2024-07-29 21:28:16 1269

原创 【iOS】 消息传递和消息转发

iOS的消息传递和消息转发过程(重点在3次的关系)

2024-07-26 21:13:24 1102

原创 【iOS】iOS编译链接过程

iOS编译链接过程

2024-07-26 09:20:42 1092

原创 【iOS】KVO底层原理

【iOS底层原理】KVO

2024-07-25 11:49:40 478

原创 【iOS】Class的底层原理

Class的底层原理

2024-05-29 11:43:10 654

原创 【iOS】OC对象的本质底层原理

OC对象的本质-底层原理

2024-05-24 14:31:04 668

原创 【iOS】RunLoop详解(二)

RunLoop详解(从源码入手)

2024-05-12 16:04:53 1124 1

原创 【iOS】Runloop总结

Runloop小结

2024-05-11 12:51:41 627

原创 【iOS】OC中类,父类,元类的关系

OC中类,父类,元类的关系

2024-04-19 11:19:21 817

原创 【iOS】GCD详解

详解GCD

2024-03-23 17:09:43 1423

原创 【Objective - C】深入理解OC内存管理和自动引用计数

深入理解OC内存管理和自动引用计数

2024-03-11 21:16:47 952

原创 【iOS】寒假OC开发项目知识点总结(不全)

【iOS】OC开发寒假项目知识点总结(不全)

2024-02-14 21:53:23 1062 1

原创 【Effective Objective-C 2.0】协议与分类

【Effective Objective-C 2.0】协议与分类

2024-01-28 18:38:28 2445 1

原创 【iOS】天气预报项目总结

天气预报项目总结

2023-11-26 22:49:17 670 1

原创 【iOS】3GShare项目总结

3GShare项目总结

2023-11-12 20:50:09 148

原创 【OC】NSDictionary和NSMutableDictionary

OC : NSDictionary和NSMutableDictionary

2023-10-30 22:15:31 374 1

原创 【OC】NSArray和NSMutableArray

OC:NSArray和NSMutableArray

2023-10-30 22:13:38 333 1

原创 【OC】NSString和NSMutableString

OC:NSString和NSMutableString常用方法使用总结

2023-10-30 22:08:47 111 1

原创 【OC】多界面传值

OC多界面传值

2023-10-30 21:53:45 147 1

原创 【OC】OC类和对象下学习(分点)

OC类和对象下学习分点(分点)

2023-10-19 20:54:36 152 1

原创 【OC】OC语法学习分点总结

OC语法学习分点总结

2023-10-18 22:32:25 238 2

原创 【OC】c++快速上手oc语法

c++语言快速上手OC语言

2023-10-18 20:50:30 293 1

原创 【C++】内联函数

C++中的内联函数是一种特殊的函数,它可以提高程序的执行效率,尤其是在频繁调用的情况下。本篇博客将介绍内联函数的 概念、用法和优缺点,使用实例,注意事项,使用范围,和宏定义的区别,实现方式,以及内敛函数的调试 。

2023-04-18 14:18:50 933

原创 【C++】传值返回和传引用返回的区别

传值返回和传引用返回都有其优缺点,应根据实际情况选择使用。一般来说,如果返回的结果是较小的基本类型或结构体,可以使用传值返回,而如果返回的结果是较大的对象或结构体,则应使用传引用返回。此外,如果调用方需要修改结果变量的值,则应使用传引用返回。需要注意的是,如果函数返回的是一个临时变量或一个静态变量,那么传引用返回是不安全的,因为这些变量可能在函数返回后被销毁,从而导致对已经不存在的内存进行访问。因此,在这种情况下,应使用传值返回。

2023-04-17 15:54:38 609

空空如也

空空如也

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

TA关注的人

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