1,isa指针的作用实例对象instance的isa指向class,当调用对象方法时,通过instance的isa找到class,最后找到对象方法的实现进行调用类对象class的isa指向meta-class,当调用类方法时,通过class的isa找到meta-class,最后找到类方法的实现进行调用  2,supreClass指针的作用当Student的class要调用Person的
一、指针数组的概念如果一个数组,其元素均为指针类型数据,该数组称为指针数组,也就是说,指针数组中的每一个元素相当于一个指针变量,它的值都是地址。一维指针数组的定义形式为   类型名*数组名[数组长度];例如 int *p[4]; 可以用指针数组中各个元素分别指向若干个字符串,使字符串处理更加方便灵活。 例6.15 若干字符串按字母顺序(由小到大)输出。 #include &l
// // Phone.h #import typedef enum { kFlahlightStatusOpen, kFlahlightStatusClose } FlahlightStatus; // 被继承的这个类我们称之为父类/ 超类 @interface Phone : NSObject + (void)carameWithFlahlightStatus:(F...
转载 2017-08-22 19:56:00
42阅读
2评论
 一.Block的本质 (1)block其实是一个对象, 在存放block对象的内存区域中,也包含我们经常说的isa指针,和一些能让block正常运转的各种信息。关于isa指针,在oc中每个实例对象都会有一个isa指针,指向对象的类,其实在类里面也会有isa指针,这个指针指向该类的元类。(2)内存分配栈:是由编译器自动分配释放,存放函数的参数值,局部变量的值以及函数返回地址。所
每个Objective-C对象都有一个隐藏的数据结构,这个数据结构是Objective-C对象的第一个成员变量,它就是isa指针。这个isa到底是什么呢?官方介绍是这样的:    Every object is connected to the run-time system through itsisa instance variable, inherited fr
转载 2023-09-13 16:02:27
99阅读
计算机硬件软件接口ISAISA(Instruction Set Architecture,指令集体系结构)    IBM为了让自己的一系列计算机能够使用相同的软件,免去重复编写软件的痛苦,在它的System/30计算机中引入了ISA(Instruction Set Architecture,指令集体系结构)的概念,将编程所需要了解的硬件信息从硬件系统中抽象出
转载 2023-08-03 17:07:51
67阅读
#import void changeC(char *d) {    *d =9;}void changeStr(NSString **str2) {    *str2 =@"123";}int main(int argc,const char * argv[]){    @autoreleasep
原创 2022-12-09 14:54:27
86阅读
# iOS 修改 ISA 的完整指南 在 iOS 开发中,研究和修改类的 `isa` 指针涉及到底层 Objective-C 的运行时机制。这一过程虽然相对复杂,但掌握后你将能更灵活地操作对象。本文将一步一步教你如何实现 iOS 中的 `isa` 修改,包括流程概览、每个步骤的详细说明、所需代码的示例,以及如何监测整个过程。 ## 流程概览 下面是修改 `isa` 指针的整体流程: | 步
原创 9月前
24阅读
指针....数组指针/* 是指向数组元素的指针,本质是一个指针。 作用: 使用数组指针间接访问数组的元素 定义: int *p; 初始化: int a[4]={1,2,3,4}; int *p = a;//定义了一个指针 p 指向了a这个数组的第一个元素。此时 p 就是一个数组指针
转载 2024-09-10 23:03:01
103阅读
HOOK:面向函数,解决函数调用拦截与替换的问题; 动态代理:面向对象,解决对象的动态替换问题; 动态代理的实现方案: 1、经典代理机制; 2、子类化机制;oc语言的isa替换是这额解决方案的经典案例;
转载 2019-02-13 11:02:00
103阅读
2评论
先看一下官方文档给出的初始化示例代码:[plain] view plaincopy 1. - (id)init { 2. self = [super init]; // Call a designated initializer here. 3. if (self != nil) { 4. // 省略其他细节 5. } 6.
转载 2024-01-30 06:09:04
51阅读
# **iOS开发与Objective-C** ![iOS]( iOS是Apple公司推出的移动操作系统,为iPhone、iPad和iPod Touch等设备提供了强大的功能。而Objective-C是一种面向对象的编程语言,它是iOS开发的主要语言之一。在本文中,我们将介绍iOS开发和Objective-C的基本概念,并提供一些代码示例来帮助读者更好地理解。 ## **iOS开发基础**
原创 2024-01-21 09:44:58
59阅读
OC的理解和特性多年之前,接触OC开始,就知道它是一门面向对象的语言。最为面向对象的语言,我们就不得不提起面向对象的三大支柱:封装、继承、多态。这三大特性,时常会运用在我们日常的开发过程中,支撑着我们的每一个项目。三大特性封装:即隐藏对象的属性和实现细节,仅对外公开接口,控制在程序中属性的读和修改的访问级别;将抽象得到的数据和行为(或功能)相结合,形成一个有机的整体,也就是将数据与操作数据的源代码
转载 2024-06-14 22:05:06
49阅读
手动创建第一个OC程序创建一个文件夹,文件夹内创建一个a.m的OC源文件,并编辑之前说过,OC是完全兼容C语言的,那么我们先写个下面的程序尝试一下#include<stdio.h> int main(){ printf("这是kongqw的第一个OC程序"); return 0; }运行编译,生产.o目标文件cc -c a.m链接,生成可执行文件cc a.o运行./a
# iOS 中的 ISA 只是什么? 在 iOS 中,**ISA**(指向结构体类型的指针)是 Objective-C 指针和基础架构的一个重要组成部分。它用于对象的类型识别、消息传递和内存管理。理解 ISA 是如何工作的,对于开发者深刻理解 Objective-C 的运行时机制,尤其是内存管理、对象模型和性能优化都具有重要意义。 ## ISA 的基本概念 每个 Objective-C 对象
原创 8月前
27阅读
系列:iOS开发-OC基础介绍Objective-C,通常写作ObjC或OC和较少用的Objective C或Obj-C,是扩充C的面向对象编程语言。它主要使用于Mac OS X和GNUstep这两个使用OpenStep标准的系统,而在NeXTSTEP和OpenStep中它更是基本语言。 GCC与Clang含Objective-C的编译器,Objective-C可以在GCC以及Clang运作的系
点语法1 - OC 设计点语法的目的就是为了让其他语言的开发者可以很快的上手该语言,点语法就是让 OC 和其他面向对象的语言很相像注:点语法的本质是方法的调用,而不是访问成员变量。其实就是转换成相应的 setter/getter 方法,没有 setter/getter 就不能使用点语法2 - 在 OC 中访问成员变量只有一种方式即使用 ->,且是在 @public 修饰的前提下。凡
转载 2023-07-18 16:27:52
173阅读
oc是面向对象的语言;遵从ANSI C 标准C语法,使用了Smalltalk的方法第一个oc程序;  #importFoundation/Foundation.h>      告诉编译器找到并处理名为Foundation.h的文件,这是一个系统文件; #import表示将该文件信息导入到程序中int main(int argc,
转载 2023-12-28 13:33:13
110阅读
  本文简述了Objective-C语言的语法(偏面向对象),以及一些个人见解。Objective-C(之后称OC),顾名思义,是C语言面向对象的一种扩展,它保留了C语言的全部语法,并且兼容C语言,在这基础上建立了一套完整的面向对象编程体系。在面向对象相关的语言层面上,可以说它是比较像Java的:单继承、有接口等。但是在代码中,它跟C++是比较相似的。  让我们来看代码吧!#import <
转载 2024-07-24 09:57:55
69阅读
iOS开发之旅--_isa和_imp指针    一、回顾_isa指针之前谈到过isa指针,isa指针是一个指向所属类的指针,它标注着一个实例对象的真实类型。在Object-C中消息机制是依靠objc_msgSend()这个函数发送消息,objc_msgSend含两个参数:receiver、selector。即:objc_msgSend(receiver, s
  • 1
  • 2
  • 3
  • 4
  • 5