美文网首页
数据的基本类型

数据的基本类型

作者: 奋斗的蝼蚁 | 来源:发表于2020-11-28 14:25 被阅读0次

常用的基本类型

iOS OC 基本类型

assign、copy、strong,weak

基本概念

  • assign 修饰基本数据类型,NSInteger、BOOL
  • copy 、strong、weak 都修饰对象。

需要注意的点

assign

可以修饰对象,但是容易crash,容易才能悬空指针,修饰的对象释放后,指针不会自动置成nil,此时再向对象发消息程序会崩溃。
修饰对象类型时,不改变其引用计数。

weak

非拥有关系
修饰对象类型时,不改变其引用计数,对象释放后,指针为nil,既不保留新值,也不释放旧值。

strong

拥有关系
设置新值,保留新值,会释放旧值。
改变对象的引用计数

copy

浅拷贝 
拷贝对象的内存地址,让目标对象和源对象指向同一片空间,增加引用计数。

深拷贝
目标对象和源对象指向两片内容相同的内存空间

@property(copy) NSMutableArray *array?
如果赋值过来的是NSMutableArray, copy 之后是NSArray 深拷贝
如果赋值过来的是NSArray, copy 之后是NSArray 潜拷贝

copy 修饰的对象得到的是不可变对象
mutableCopy 修饰的对象是可变的对象 都是深拷贝
image.png

日常开发遇到的坑

问题一
用assign 修饰的对象 会发生一些信号量的crash。

问题二
testThreeCopy 需要重点注意

@property (nonatomic, strong) NSMutableArray *mutableArray;

- (void)testCopy{
    NSArray *arrayOne = [[NSArray alloc] init];
    self.mutableArray = arrayOne;
    [self.mutableArray addObject:@"1"];
}

- (void)testTwoCopy{
    NSArray *arrayOne = [[NSArray alloc] init];
    self.mutableArray = [arrayOne mutableCopy];
    [self.mutableArray addObject:@"1"];
}

- (void)testThreeCopy{
    NSMutableArray *arrayOne;
    if (!arrayOne) {
        arrayOne = [[NSArray alloc] init];
    }
    self.mutableArray = arrayOne;
    [self.mutableArray addObject:@"1"];
}

相关文章

  • Java基本数据类型转换

    一:Java的基本数据类型和引用数据类型 1:基本数据类型 2:引用数据类型 二:基本数据的类型转换 基本数据类型...

  • 2019年安卓面试题--------Java 基础篇

    java 的基本数据类型 java的数据类型分为基本 数据类型和 引用数据类型基本数据类型: byte sho...

  • C++基础

    1.C的基本数据类型 java基本数据类型 C基本数据类型 基本数据类型所占字...

  • Java基本数据类型

    Java数据数据类型分为:基本数据类型 及 引用数据类型这篇文章讲解基本数据类型 数值基本类型 其他基本类型 位与...

  • JS数据类型判断

    js中可以通过typeof来判断基本的数据类型。 数据类型 js的数据类型分为基本数据类型和引用数据类型,基本数据...

  • java数据类型(八种基本数据类型+三种引用类型)

    数据类型分类 java数据类型分为基本数据类型和引用数据类型 基本数据类型 基本数据类型包括4个分类,分配的存储空...

  • Java的数据类型

    一、Java数据类型分为基本数据类型与引用数据类型。 二、基本数据类型 三、基本数据和包装类的区别 四、基本数据类...

  • Hive-3.1.2(三)数据类型

    常用的基本数据类型 基本数据类型所占字节intbooleanfloatdoublestring 复杂数据类型 基本...

  • python的基本数据类型_int

    python的基本数据类型 基本数据类型 也称作 基本变量类型, python 共有 9 种 基本数据类型,分别是...

  • 三、JNI-基本类型、字符串和数组

    基本类型 字符串 数组 #1. 基本类型 Java语言中数据类型分为基本数据类型和引用数据类型,其中基本数据类型分...

网友评论

      本文标题:数据的基本类型

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