美文网首页iOS Developer程序员
iOS 方法中 单指针和双指针的区别

iOS 方法中 单指针和双指针的区别

作者: iOS_愛OS | 来源:发表于2018-07-19 15:36 被阅读112次

iOS 单指针,双指针在方法参数中的区别

  • 传入单指针,在方法内会复制一个临时的指针副本,在方法内操作的都是这个临时副本
- (instancetype)init{
    if (self = [super init]){
        // obj 指向对象 A
        NSObject *obj = [[NSObject alloc] init]; // 对象 A
        [self setObject:obj];
        // 这时,obj 还是指向 对象 A
    }
    return self;
}

- (void)setObject:(NSObject *)obj1{
    // obj1 是一个新的指针,跟 指针 obj 同时指向 对象 A 
    // obj1 指向了新的对象 B , obj 继续指向 对象A
    obj1 = [[NSObject alloc] init]; // 对象B 

}
  • 传入双指针,在方法内会改变方法外 指针的指向
- (instancetype)init{
    if (self = [super init]){
        // obj 指向对象 A
        NSObject *obj = [[NSObject alloc] init]; // 对象 A
        // 传入 指针 obj 自己的地址
        [self setObject:&obj];
        // 这个时候 obj 指向了 新对象 B 
    }
    return self;
}

- (void)setObject:(NSObject *)obj1{
    // obj1 是一个临时指针,指向指针 obj 的地址
    // *obj1 就是 指针 obj , *obj1 指向新对象 B ,也就是 指针 obj 指向新对象B,改变了外面的指针 obj 的指向
    *obj1 = [[NSObject alloc] init]; // 对象B 

}

iOS 双指针最常用的就是 NSError

相关文章

  • iOS 方法中 单指针和双指针的区别

    iOS 双指针 iOS 单指针,双指针在方法参数中的区别 传入单指针,在方法内会复制一个临时的指针副本,在方法内操...

  • LeetCode 数组专题 4:双索引技术之一:对撞指针

    在 LeetCode 上,专门有一个标签,名为“双指针”,有数组中的“双指针”,也有单链表中的“双指针”。 例题1...

  • Java.2018-08-01

    Java简介 Java语言不使用指针,而是引用指针和引用区别1指针和引用区别2 只支持类之间的单继承,但支持接口之...

  • 数据结构重学日记(十)双链表

    概念 单链表:单个指针,单向火车。 双链表:双指针,电梯。 双链表在单链表的基础上增加了一个指向前边结点的指针。 ...

  • c语言之const和指针

    const和指针 区别方法:如果const位于*的左侧,则const就是用来修饰指针所指向的变量,即指针指向为常量...

  • 二、C语言基础

    A、指针 指针的概念:指针变量 和 指针 的区别 ?答:指针变量是指针的标记,也可以通过指针变量的标记操作指针内存...

  • C++基础

    C++ 值传递、指针传递、引用传递详解C++中引用传递与指针传递区别 引用传递和指针传递的区别 引用的规则:(1)...

  • Go教程第十篇:指针

    指针 在这篇教程中,我们将学习Go里面的指针是如何工作的,以及Go的指针和C/C++的区别和差异。 什么是指针 ?...

  • NDK02

    指针 指针概念 1 .指针变量和指针的区别?答: 指针变量是定义指针的标记,指针就是指向的内存地址。2 .函数指针...

  • 单例模式

    单例类有一个静态单例类指针,在静态方法中new该指针实例化是懒汉,在单例类外部::初始化该指针是饿汉。 保证一个类...

网友评论

    本文标题:iOS 方法中 单指针和双指针的区别

    本文链接:https://www.haomeiwen.com/subject/hxutmftx.html