iOS中assign和weak修饰符的区别

简介: iOS中assign和weak修饰符的区别

assign与weak,它们都是弱引用声明类型,最大的区别在那呢?


如果用weak声明的变量在栈中就会自动清空,赋值为nil。


如果用assign声明的变量在栈中可能不会自动赋值为nil,就会造成野指针错误!

他们常用在基本类型属性,比如BOOL,int等,还有就是delegate。

在使用delegate时,需要注意,非ARC时是使用assign,但到了ARC时代,都建议使用weak,这样更安全。

目录
相关文章
|
3月前
|
安全 Android开发 数据安全/隐私保护
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
请说明鸿蒙操作系统与其他操作系统(如Android和iOS)的主要区别。
59 1
|
2月前
|
Java 测试技术 API
安卓APP和iOS APP在测试上的区别是什么?
安卓APP和iOS APP在测试上的区别是什么?
|
3月前
|
安全 JavaScript 前端开发
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
IOS开发基础知识:介绍一下 Swift 和 Objective-C,它们之间有什么区别?
67 0
|
8月前
|
Shell iOS开发
iOS 逆向编程(十)sh脚本(shell)编写与执行指令区别
iOS 逆向编程(十)sh脚本(shell)编写与执行指令区别
175 0
|
8月前
|
安全 小程序 iOS开发
iOS Odyssey 和 unc0ver 的区别
iOS Odyssey 和 unc0ver 的区别
417 0
|
存储 缓存 iOS开发
iOS Principle:weak
iOS Principle:weak
119 0
iOS Principle:weak
|
iOS开发
iOS开发-Opaque、Alpha、Hidden区别
在UIView中,有段时间Alpha,Hidden用的比较多,Opaque是最近才了解的,感觉有些不好理解于是就将这三个属性做了区分: 属性: 1、Alpha(不透明度) 2、Hidden(隐藏) 3、Opaque(不透明的) 1、Alpha(不透明度)
387 0
|
iOS开发
iOS开发:block死循环及__weak弱引用提前释放的问题解决
block死循环及__weak弱引用提前释放的问题解决
289 0
navigationBar tintColor barTintColor 分别在iOS7和它之前的区别
navigationBar tintColor barTintColor 分别在iOS7和它之前的区别
215 0
iOS-底层原理 10:strong&copy&weak底层分析 以及 方法签名和attribute简写含义
iOS-底层原理 10:strong&copy&weak底层分析 以及 方法签名和attribute简写含义
133 0
iOS-底层原理 10:strong&copy&weak底层分析 以及 方法签名和attribute简写含义