`
R任轩
  • 浏览: 15901 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

iOS self和super的区别

 
阅读更多

首先先写两个类 fist和two,two继承fist类

@interface First:NSObject
{
    int a;//声明了一个变量
}
-(void) setA:(int)c;//对a赋值的方法
@end
@implementation First
 
-(void)setA:(int)c
{
    a=c;
}
 
@end
 
//类2
@interface Two : First
{
    int b;
}
-(void)setB:(int)d;
-(void)print;
@end
@implementation Two
-(void)setB:(int)d
{
    b=d;
}
-(void)print
{
    NSLog(@"a的值为%d/nb的值为%d",a,b);
    NSLog(@"这时self==%@",[self class]);
    NSLog(@"super=====%@",[superclass]);
}
 
@end
 
 
int main(int argc, const char * argv[])
{
 
    @autoreleasepool {
            
        Two *two=[[Two alloc] init];
        NSLog(@"这时frist中的函数");
        [two setB:2];
        NSLog(@"这是two中的函数");
        [two setA:1];
        
        [two print];
        
      
    }
    return 0;
}

运行的结果是:

这时我们看到self和super的值一样  区别在哪呢????

 

其实是这样的  self和super都是指的是类的对象   self指的是本类的对象,而super指的是父类的对象

他们相当于系统自己声明的一个类对象。

 

分享到:
评论

相关推荐

    IOS self和super详解实现原理及区别

    在iOS的Objective-C编程中,`self`和`super`是两个非常重要的关键字,它们在对象方法调用中起着至关重要的作用。本文将详细解释`self`和`super`的实现原理及其区别。 首先,我们要理解`self`和`super`的基本概念。`...

    IOS按钮拖动和点击

    在iOS开发中,按钮(UIButton)是用户界面中不可或缺的元素,它允许用户进行交互,如触发特定操作或导航到其他页面。本教程将聚焦于如何实现按钮的拖动和点击功能,这对于创建动态和响应式的应用至关重要。我们将...

    iOS-ECharts的使用

    为此,**Pluto-Y**对原生的ECharts进行了封装,开发出了**iOS-ECharts**,使得iOS开发者能够更轻松地集成和使用ECharts的功能。 #### 二、安装与配置 ##### 1. CocoaPods配置 首先确保你的项目已经集成了...

    IOS下拉刷新Demo实现

    本教程将介绍如何使用EGOTableViewPullRefresh开源库在iOS应用中实现下拉刷新功能,并针对原代码进行一些自定义以支持中英文显示和调整刷新时间格式。 首先,EGOTableViewPullRefresh是由Egor Gorin开发的一个轻量...

    iOSputao#iOS-#[self class] 与 [super class]1

    /* For compatibility with old objc-runtime.h header *//* super_class is the firs

    ios相机和浏览器实现源码

    在iOS开发中,相机和浏览器是两个非常关键的组件,它们极大地丰富了用户的交互体验。本文将深入探讨如何在iOS应用中实现相机功能和浏览器功能,以及如何通过源码进行优化。 首先,让我们关注相机的实现。在iOS中,...

    iOS简单实现遮罩层

    在iOS中,`UIView`是所有视图的基础,它负责管理视图的显示内容和行为。`MaskView`类可能会包含一些属性,比如遮罩颜色、透明度、是否允许用户交互等,这些都是实现遮罩效果的关键设置。 ```objc // MaskView.h #...

    Flutter-使用MethodChannel 实现与iOS交互

    `MethodChannel` 是 Flutter 和原生平台之间进行通信的一种方式,它允许我们在 Flutter 代码中调用 iOS 的原生方法,反之亦然。本示例将详细介绍如何在 Flutter 应用中通过 `MethodChannel` 与 iOS 进行交互。 首先...

    关于iOS自动布局

    ### 关于iOS自动布局知识点详解 #### 一、概述 在iOS开发中,自动布局(Auto Layout)是一种非常重要的布局管理技术。它允许开发者通过设置视图间的约束关系来实现界面元素的位置和大小控制,从而使得应用能够在...

    iOS之presentViewController模态全屏适配解决方案.docx

    iOS之presentViewController模态全屏适配解决方案 .isPresentViewController模态全屏适配是iOS开发...通过这些解决方案,开发者可以轻松地解决iOS 13.0之presentViewController模态全屏适配问题,提高开发效率和质量。

    ios单例模式demo

    self = [super init]; if (self) { // 初始化逻辑 } return self; } + (instancetype)sharedInstance { static MyClass *shared = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ ...

    IOS各种Picker使用

    总结一下,iOS开发中的Picker组件包括UIPickerView、UIDatePicker和UIImagePickerController,它们分别用于显示多项选择、选取日期和时间以及选择媒体内容。理解和熟练运用这些组件对于构建功能丰富的iOS应用至关...

    iOS opencv动态边缘检测

    在iOS平台上,OpenCV库被广泛用于图像处理和计算机视觉任务,其中包括动态边缘检测。动态边缘检测是指在连续的视频流或图像序列中检测到物体边缘的过程,这在移动设备上有着广泛的应用,如增强现实、自动驾驶、智能...

    iOS截屏录屏处理

    在iOS平台上,由于其封闭和安全的特性,系统对截屏和录屏有着严格的控制,尤其是在涉及敏感数据或用户隐私的应用场景中。本教程将详细讲解如何在iOS应用中处理截屏和录屏的提示,以及如何利用Swift编程语言来实现...

    ios 简单代理例程

    在iOS应用中,代理通常用于处理事件响应、数据传递和通信。这种模式遵循“中介者”原则,使对象之间的耦合度降低,提高代码的可维护性。 **在iOS中的应用** 在iOS开发中,代理模式主要用于以下场景: 1. **视图...

    在iOS和Android中使用二维码ZXing库及常见问题解决和整合后的代码

    本文将深入探讨如何在iOS和Android平台上集成ZXing库,以及在实际应用中遇到的常见问题和解决方案,并提供整合后的代码示例。 首先,让我们了解一下ZXing库。ZXing,意为“斑马线”,最初是谷歌的一个项目,旨在...

    iOS 自定义倒计时

    在iOS开发中,倒计时(Countdown)是一种常见的功能,尤其在通知、计时器或者活动预告等场景中十分常见。本教程将详细介绍如何在iOS应用中自定义倒计时控件,实现分秒级别的倒计时,并讨论如何轻松地将其集成到您的...

    ios打开系统相册和相机

    在iOS应用开发中,与系统相册和相机的交互是常见的功能需求,特别是在涉及到用户上传个人照片或选择头像的场景。本知识点将详细介绍如何在iOS应用中实现这两个功能。 一、打开系统相册 在iOS中,我们可以使用`...

    ios音频接口教程

    ### iOS音频接口教程知识点概述 #### 一、多媒体API概览 本教程旨在为iOS开发者提供深入理解多媒体API(特别是音频部分)的机会。通过详细解释关键概念和技术细节,旨在帮助不同程度的开发者提升技能。 #### 二、...

Global site tag (gtag.js) - Google Analytics