- 博客(12)
- 收藏
- 关注
原创 isMemberOfClass和isKindOfClass
isa 是 NSObject 基类定义的一个指针属性(实际由编译器自动生成),用于标识对象的类类型或元类型。通过 isa指针,对象可以找到其所属的类,类可以找到其所属的元类,元类最终指向根元类,形成一条类型链。继承链是指从子类到根类(NSObject的类层级关系。当调用对象的方法或属性时,会沿着继承链向上查找,直到找到对应的实现或到达根类。isMemberOfClass和isKindOfClass最大的区别还是在于比较的是两个类是否相同还是当前类和对比类自身或其子类相同。
2025-05-19 22:01:07
643
原创 Foundation框架详解
重写isEqual:和hash方法(isEqual:方法判断相等,hash返回值相等)实现copyWithZone:方法,最好返回该对象的不可变副本为了避免索引(key)被破坏,NSDictionary总会先调用该key的copy方法复制该对象的不可变副本,然后用该副本作为NSDictionary的key。
2025-05-19 19:19:17
792
原创 深拷贝与浅拷贝
内容拷贝,是对整个对象的拷贝,将数据拷贝到一块新的内存区域,指针指向拷贝的新的数据区域。(新创建了一个一模一样的对象,与被拷贝对象不共享内存,修改新对象不会改变原对象指针拷贝,仅仅是对于指针的拷贝,复制一个新指针指原来的同一块内存区域。(实际没有发生拷贝,只复制了指向某个对象的指针,而不复制对象本身,与被拷贝对象共享一块内存上图中,左边的方式为浅拷贝(只复制了指针,仍指向同一对象),右边的方式为深拷贝(不仅新建了指针,还复制了对象)。OC中有三种容器:数组、字典和集合。
2025-05-14 20:33:47
903
原创 面向对象(下)第6章
以下是本人在学习面向对象(下)第6章时,总结的学习笔记。@protocol定义正式协议的基本语法格式@protocol 协议名 <父协议1, 父协议2,...> {零个到多个方法定义...协议名应与类名采用相同的命名规则一个协议可以有多个父协议,但协议只能继承协议,不能继承类。**协议中定义的方法只有方法签名,没有方法实现,**协议中包含的方法既可以是类方法,也可以是实例方法。协议里所有的方法都具有公开的访问权限。
2025-05-12 22:20:17
843
原创 OC面向对象(上)第5章
整理总结了一下最近两周学习OC的底章的内容。面对对象的程序设计过程中有两个重要的概念:类(class)和对象(object,也称为实例,instance)。类和对象是面向对象的核心。接口部分:定义类包含的成员变量和方法实现部分:为类的方法提供实现。int _count;id _data;@end@interface:用于声明定义类的接口部分@end:表明定义结束花括号中声明类的成员变量,花括号后面的部分用于声明类的方法其中,成员变量和方法是非常重要的概念。
2025-05-11 16:02:20
626
原创 OC中字符串的实现方式
简单总结一下,这个类型的字符串保存在常量区,不可修改,一般NSString直接创建;NSCFString这个类型的字符串在运行时动态生成,保存在堆去,可以修改,一般使用NSString stringWithFormat:动态创建;这种类型是把字符串内容直接保存在指针中,而不是真正的对象,一般适用于较短字符串。
2025-05-09 22:29:19
737
原创 OC面向对象(上)
该博客梳理一下本周学习的OC的内容。以下是OC不同于C语言在代码上的一些区别:”)等同于printf(“Hello, World!”)NSLog自动换行“ ” 引用是自己定义的类@autoreleasepool 自动释放池.h文件只负责声明,不负责实现.m文件为实现声明的方法面向对象的程序涉及过程中,有两个重要概念类(class)和对象(object,也称为实例,instance),其中类是某一批对象的抽象。**类和对象是面向对象的核心。**Objective-C中定义类需要分为两个步骤。
2025-05-05 19:01:46
608
原创 单链表的增删改查
在数据结构中,链表是一种常见的线性数据结构,由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。链表可以分为带头节点的链表和不带头节点的链表例题:[707. 设计链表 - 力扣(LeetCode)19. 删除链表的倒数第 N 个结点 - 力扣(LeetCode)206. 反转链表 - 力扣(LeetCode)在原链表末尾最后一个节点指向NULL,存入val,添加一个新节点指向原尾节点,扩大原链表内存大小= NULL) {
2025-04-13 16:14:41
910
原创 实验室二面题解
第一个人(1 号)将灯全部关闭,第二个人(2 号)将编号为 2 的倍数的灯打开,第三个人(3 号)将编号为 3 的倍数的灯做相反处理(即,将打开的灯关闭,将关闭的灯打开)。一个 n 个元素的整数数组,如果数组两个连续元素之间差的绝对值包括了 [1,n-1] 之间的所有整数,则称之符合“欢乐的跳”,如数组 {1,4,2,3} 符合“欢乐的跳”,因为差的绝对值分别为:3,2,1。数据保证,1 <= n <= 10^6=,0 <= a_i,q <= 10^9,1 <= m <= 10^5。
2025-04-06 23:03:25
970
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人