`
deng131
  • 浏览: 673624 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Objective-C 中 self 和 super 区别

阅读更多
   self 是类的隐藏的参数,指向当前当前调用方法的类,另一个隐藏参数是 _cmd,代表当前类方法的 selector。这里只关注这个 self。super 是个啥?super 并不是隐藏的参数,它只是一个“编译器指示符”,它和 self 指向的是相同的消息接收者,拿上面的代码为例,不论是用 [self setName] 还是 [super setName],接收“setName”这个消息的接收者都是 PersonMe* me 这个对象。不同的是,super 告诉编译器,当调用 setName 的方法时,要去调用父类的方法,而不是本类里的。

    当使用 self 调用方法时,会从当前类的方法列表中开始找,如果没有,就从父类中再找;而当使用 super 时,则从父类的方法列表中开始找。然后调用父类的这个方法

参考:
http://heidianfeng.blog.163.com/blog/static/618434562011028337309/
分享到:
评论

相关推荐

    Objective-C中Self和Super详解

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

    Object-C语言教程-提供了 Objective-C 的基本语法和一些示例,希望能够帮助你快速入门 Objective-C

    **Objective-C**是一种结合了C语言的基础特性和Smalltalk式消息传递机制的面向对象编程语言。作为C语言的一个超集,Objective-C允许开发者直接使用C语言代码。此外,它还借鉴了C++的一些特性,尽管它并非C++的直接...

    objective-c语言教程

    ### Objective-C语言教程知识点概述 #### 一、Objective-C编程语言简介 ...通过以上知识点的梳理,读者可以全面了解Objective-C语言的基础概念和高级特性,从而更好地应用于iOS和macOS应用程序的开发中。

    From C++ to Objective-C

    Objective-C中的self和super关键字是特殊的指针,用于指向当前对象和父类对象。内存管理方面,Objective-C使用引用计数(retain/release)机制,与C++中的析构函数和new/delete操作符有所不同,开发者需要熟悉retain...

    是一个较为详细的Objective-C语言教程.docx

    **Objective-C**是一种广泛使用的编程语言,尤其在**iOS**和**macOS**平台的应用开发中占据核心地位。它结合了**C**语言的基础特性和面向对象编程的强大功能,使得开发者能够高效地构建复杂的应用程序。 #### 二、...

    Programming in Objective-C 5th Edition

    Objective-C是一种通用的、面向对象的编程语言,由Smalltalk和C语言发展而来。它最早在20世纪80年代初由Brad Cox发明,并由Stepstone公司开发和完善。Objective-C是苹果公司在其操作系统(如macOS和iOS)开发中的...

    Objective-C基础知识

    Objective-C最初由General Electric的Pike International开发,后被苹果公司采纳并广泛应用于iOS和macOS的开发中。 #### 设定环境 对于Objective-C的学习者来说,设定合适的开发环境至关重要。以下是针对不同操作...

    From_C++_to_Objective-C

    6. **函数与方法的区别**:在Objective-C中,函数指的是没有特定对象调用的独立过程,而方法则是属于某个对象的过程,通过消息传递的方式调用。 #### 四、源代码组织结构 Objective-C的项目通常包括两个主要类型的...

    Objective-C 速查手册 1.2 (ARC版)

    在Objective-C中,每个类由两部分组成:类头文件和类实现文件。头文件通常包含类的声明,即属性和方法的签名,用于被其他类引用。 ```objc // 导入其他头文件 #import "AnyHeaderFile.h" // 声明类 @interface ...

    Objective-C 基础教程

    - **Messages to self and super(向self和super发送消息)**:解释了如何向self和super对象发送消息,以及它们的区别。 - **An Example: Using self and super(示例:使用self和super)**:提供了一个具体的示例...

    From C++ to Objective-C (从C++到ObjectivC)

    比如Objective-C的历史、版本、语法概览、关键字、注释、代码和声明的混合使用、新类型和值(比如BOOL、YES、NO、nil、Nil和id)、SEL类型、@encode指令、源代码组织(包括.h和.m文件、包含关系)、类名命名规则...

    Objective-C Cheat Sheet

    Objective-C中的方法可以是实例方法或类方法,它们的定义和实现遵循特定的语法: ```objective-c -(anytype)doIt; -(anytype)doItWithA:(anytype)a; -(anytype)doItWithA:(anytype)a andB:(anytype)b; // 方法实现...

    objective-c

    以上是Objective-C类设计中的一些基本概念和技术要点,涵盖了类的基本结构、对象的创建与初始化、不同类型的变量以及静态方法等重要内容。这些知识点对于理解和使用Objective-C进行iOS开发至关重要。

    objective-c快速入门

    Objective-C 被广泛应用于 macOS 和 iOS 应用程序开发。 ##### 1. 创建 Class 在 Objective-C 中,通过定义类来组织代码。类是对象的模板,对象则是类的实例。下面是一个简单的类定义示例: ```objective-c @...

    Objective-C 对分数进行加法操作

    Objective-C是Apple的面向对象编程语言,它是C语言的超集,引入了Smalltalk的类和消息传递机制。在Objective-C中,我们可以创建自定义的数据类型来表示分数,比如创建一个名为`Fraction`的类。 `Fraction`类应包含...

    The Objective-C Programming Language

    函数是Objective-C中的重要组成部分,可以实现代码的重用和模块化。函数声明通常包括返回类型、函数名和参数列表。 #### 三、面向对象特性 Objective-C是一种典型的面向对象编程语言,支持封装、继承和多态等特性...

    iOS objective-c 实体类对象的序列化为Json及反序列化

    Objective-C的实体类对象序列化和反序列化是数据处理的关键环节,它涉及到如何将内存中的对象转换为可存储或传输的数据格式,如JSON(JavaScript Object Notation),以及如何将接收到的JSON数据还原为对象。...

    objective-C学习资料汇总专题

    资源名称:Objective-C学习资料汇总专题资源目录:【】Objective-C NSAutoreleasePool【】Objective-c 中 nil, Nil, NULL和NSNull的区别【】Objective-C 中self 和 super【】Objective-C 的编程之道【】Objective-C_...

Global site tag (gtag.js) - Google Analytics