iOS - self & super 理解的关键点

Solidworks钣金设计:折弯系数、K因子与折弯扣除的实战应用解析 本文深入解析Solidworks钣金设计中折弯系数、K因子与折弯扣除的核心概念与实战应用。通过厘清三者间的逻辑关系与换算方法,并结合材料特性、工艺参数及车间实测,指导工程师精准确定展开长度,确保设计图纸与加工实物的一致性,有效提升钣金件设计精度与生产效率。 阅读详情

1. method 搜寻路径

(在运行时,调用的到底是哪个 setOrigin::)

- reposition
{
 ...
 [self setOrigin:someX :someY];
 ...
}
或者:

- reposition
{
 ...
 [super setOrigin:someX :someY];
 ...
}

规则:

系统在解析 self 的时候,跟继承链没关系,哪个对象收到消息,self就指的是哪个对象,也就是运行时确定 self 到底指的是谁;
系统在解析 super 的时候,似乎是编译时就定死了,就看 super 是在哪个类方法里出现的,然后调用其父类(或者沿着继承链向上追溯)的该方法,跟消息的接收者没关系。


2. self 在不同语境下有不同含义:

Inside an instance method, self refers to the instance; but inside a class method, self refers to the class object. 

This is an example of what not to do:

+ (Rectangle *)rectangleOfColor:(NSColor *) color
{
 self = [[Rectangle alloc] init]; // BAD
 [self setColor:color];
 return [self autorelease];
}

To avoid confusion, it’s usually better to use a variable other than self to refer to an instance inside a class

method:

+ (id)rectangleOfColor:(NSColor *)color
{
 id newInstance = [[Rectangle alloc] init]; // GOOD
 [newInstance setColor:color];
 return [newInstance autorelease];
}

In fact, rather than sending the alloc message to the class in a class method, it’s often better to send alloc
to self. This way, if the class is subclassed, and the rectangleOfColor: message is received by a subclass,
the instance returned is the same type as the subclass(for example, the array method of NSArray is inherited

by NSMutableArray).

+ (id)rectangleOfColor:(NSColor *)color
{
 id newInstance = [[self alloc] init]; // EXCELLENT
 [newInstance setColor:color];
 return [newInstance autorelease];
}

这些是从apple官方文档里摘录的,英文很简单,再配合例子,就没必要翻译了。


F280049C Crossbar X-BAR X-BAR不是一个功能模块,只起内部外设与外设之间,或内部外设与GPIO的连接作用。配置X-BAR的就是在配置信号之间的连接。确实如这一节的开头所言,X-BAR提供了以各种配置连接设备输入、输出和内部资源的灵活性。学完这一节也知道为什么crossbar(X-BAR)的中文翻译是交叉开关。 阅读详情

相关推荐

Elsevier投稿避坑指南:Ocean Engineering论文格式要求详解(附Checklist模板)

本文详细解析Elsevier旗下期刊Ocean Engineering的投稿格式要求与常见陷阱,提供实用的Checklist模板。涵盖文章类型确认、作者贡献声明、图表规范、数据声明等关键环节,帮助研究者高效通过格式审查。特别强调LaTeX排版细节、图表分辨率要求及现代伦理声明规范,助力海洋工程领域学者顺利投稿。

weixin_33734785的博客 1490

iOS 中self和super如何理解?

或许你理解self和super都是指的是类的对象 self指的是本类的对象,而super指的是父类的对象,但是事实情况呢,可能有些和你想象的不一样? 简单看下下面例子: @interface Person:NSObject { NSString* name; } - (void) setName:(NSString*) yourName; @end @...

dixiannie4307的博客 304

给STM32供电,别只接VDD和GND!VBAT、VDDA这些引脚不接会怎样?

本文深入解析STM32电源设计中VBAT与VDDA引脚的关键作用,揭示仅连接VDD和GND可能导致的ADC精度下降、RTC功能异常等问题。通过实测数据对比不同连接方案,提供包括滤波电路设计、PCB布局布线和双电源自动切换在内的实用解决方案,帮助开发者优化系统稳定性与性能。

weixin_30521161的博客 622

IOS Super的理解

IOS Super的理解 @implementation Son : Father - (id)init { self = [super init]; if (self) { NSLog(@”%@”, NSStringFromClass([self class]));

Erice_e的专栏 2299

gtsam官方文档: The new IMU Factor学习笔记

gtsam官方文档:The new IMU Factor 本文为gtsam imu预积分文档学习笔记,为gtsam基于切向量实现的imu预积分的理论基础。 导航状态 定义导航状态为 Xbn={Rbn,Pbn,Vbn}X^n_b=\{R^n_b,P^n_b,V^n_b\}Xbn​={Rbn​,Pbn​,Vbn​} 上角标n:导航(navigation)坐标系 下角标b:载体(body)坐标系 下文均省略上下标 矢量场与微分方程 对于导航问题我们用如下微分方程描述 X˙(t)=F(t,X)\dot X(t)

南柯一梦的博客 1608

CentOS7 安装天气分型软件cost733过程详解

cost733是一款天气分型软件,其内置的一些算法可以帮助气象工作者进行天气类型划分等(我也是初学者,仅仅知道一些皮毛),但是网上找到的安装办法比较少,并且总会出现一些报错,试了一晚上,终于将安装办法调通了,希望可以帮助到大家

weixin_62573024的博客 3561

iOS self和super的区别

self和super的区别 #import <Foundation/Foundation.h> 首先先写两个类 fist和two,two继承fist类 @interface First:NSObject { int a;//声明了一个变量 } -(void) setA:(int)c;//对a赋值的方法 @end @implementation Fir...

101

【项目案例】前后端分离项目 【Web图书管理系统 】SpringBoot + Vue + Element UI + Mysql

Web图书管理系统

激流丶的博客 5396

iOS self 和 super 学习

有人问我 这个问题 回答错了,题干大概是说 [self class] 和 [super class]打印结果 是不是一样的. 我睁着眼睛说是不一样的 .因为我明明记得 几天前 做 DFS 获取反射基类 用到了这块 然 pia pia 打脸 运行一遍 先印证答案: 在 AppDelegate 里面: NSLog(@" %@ %@ %@",[self class],[super c...

weixin_34009794的博客 490

13、离散时间系统建模与分析

本文系统介绍了离散时间系统的建模与分析方法,涵盖连续时间模型的离散化过程、系统稳定性判断准则、输入输出模型转换方法以及有限脉冲响应和阶跃响应模型的应用。通过多个示例详细展示了不同系统在离散化过程中的特性变化,并探讨了采样间隔对系统动态特性的影响。此外,文章还分析了时间延迟的处理方法,并总结了关键知识点及操作步骤,为离散时间系统的实际应用提供了理论基础和实践指导。

2w3e4r5t6y的博客 188

实战二:基于LightGBM进行海洋轨迹预测 代码+数据(非常详细可作为毕设)

实战二:基于LightGBM进行海洋轨迹预测 代码+数据(非常详细可作为毕设)

1315

iOS中self与super详解(转)

原文:http://blog.sina.com.cn/s/blog_702e40a80101d34z.html 原文:http://www.jianshu.com/p/9027506a2f73 在 Objective-C 中的类实现中经常看到这两个关键字 ”self” 和 ”super”,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用...

argyjotg330046的博客 159

有道龙虾LobsterAI vs. OpenClaw:对比与安装部署攻略

LobsterAI是"中国版OpenClaw",更注重易用性和中文场景适配;OpenClaw是技术极客的玩具,需要大量命令行操作。

lpfasd123的博客 2393

iOS开发视图控制器(ViewController)调用[super viewXXX]的简单理解

iOS开发视图控制器(ViewController)调用[super viewXXX]的简单理解本人刚刚进入iOS开发行业,许多理解可能存在错误,希望各位老司机看到能够指出。那么言归正传,记得在学习iOS开发的时候,老师讲过,- (void)viewDidLoad 、这类的函数中,要先调用父类的方法即:[super viewDidLoad]来完成一些事情,那么这些方法究竟做了什么呢?于是我就创建了多

Cold_of_22F的博客 3293

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Objective-C中的self和super理解

@implementation xxx : NSObject - (id)init { self = [super init]; if (self) { } return self; } 1、self是一个隐藏参数变量 self是一个隐藏参数变量,指向当前调用方法的对象,还有一个隐藏参数是_cmd,代表当前方法selector。在runtime时会调用objc_...

Pandakingli的博客 350

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

iOS Runtime面试题([self class] 与 [super class])

[self class] 与 [super class] 下面的代码输出什么? @implementation Son : Father - (id)init { self = [super init]; if (self) { NSLog(@"%@", NSStringFromClass([self class])); ...

小丑鱼 725

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

黑马程序员-ios学习笔记:self,super

------------- java培训、android培训、java博客、java学习型技术博客、期待与您交流! --------------

li1225136753的专栏 433

iOS经典讲解之[self class]和[super class]的区别

作者:Loving_iOS 转载请标明出处: 在objc中的类实现中经常看到这两个关键字”self”和”super”,但他们的区别表现在各个方面。 以下面的代码为例: @interface Father:NSObject { NSString* name; } - (void)setName:(NSString*) yourName; @end @interfac

刘新林的技术博客 8491

iOS self 和super原理详解

self 和 super 1. self调用自己方法,super调用父类方法 2. self是类,super是预编译指令 3. [self class]和[super class]输出是一样的self和super底层实现原理: 1、当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找;而当使用 super 时,则从父类的方法列表中开始找,然后调用父类的这

Mr_XiaoJie的博客 720

iOS:Objective-C中Self和Super详解

Objective-C 中Self 和 Super 详解本文要介绍的内容,在 Objective-C 中的类实现中经常看到这两个关键字 self 和 super,以以前 oop 语言的经验,拿 c++ 为例,self 相当于 this,super 相当于调用父类的方法,这么看起来是很容易理解的。   在 Objective-C 中的类实现中经常看到这两个关键字 ”self” 和 ”super

taylor的专栏 1万+

self与super 怎么理解?

二者都是根据当前环境但区别是: super:直接跳过本级向上级逐层查找方法 self:从本级向上级逐层查找 例如: 父类:Person -(void)eat{ NSLog(@“人开始吃饭”); } 子类:Student -(void)eat{ NSLog(@“学生开始吃饭”); } (void)bothEa

Ios为我所用 695

iOS self = [super init]

self = [super init] 这个问题一直不太明白,今天研究了一下,在stackoverflow找到了下面的答案: http://stackoverflow.com/questions/2956943/why-should-i-call-self-super-init 我对这些答案简单翻译总结下: 要明白这个问题,首先要知道self 是什么东西,我们什么时候会用到self。 se...

weixin_30262255的博客 166

黑马程序员---iOS基础---OC中的self、super

------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! ------- 1.self和super OC提供了两个保留字self和super,用于在方法定义中引用执行该方法的对象。 OC语言中的self,就相当于C++、Java中的this指针。 学会使用self,首先要搞清楚属性这一概念。 设置器与访问器,提供外界操作类内部属性的一个通道。

wodepei的博客 613
上一篇: iOS - apple官方ARC文档关键点摘录
下一篇: iOS - id && Object Messaging 深入讲解
object_c_key
博客等级 码龄11年 0粉丝 9原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值