【iOS学习笔记】关于iOS中的属性修饰符初见

原创 2016年08月31日 09:40:48

关于iOS中的属性修饰符初见

在iOS中有许多的属性修饰符,其中比较常见的有strong,weak,nonatomic,assign等。下面讲一下我对这些修饰符的理解,有不对的地方请指正。

在iOS中对属性进行修饰的修饰符有: strong, weak, nonatomic, atomic, copy, unsafe_unretained, readwrite, readonly。

strong,weak : 强引用(strong)和弱引用(weak),当需要持有对象的时候使用强引用,不需要持有对象的时候使用弱引用。strong会对属性进行引用计数+1的操作,而weak不会。weak对象被释放后该指针自动置为nil,向nil发送消息不会崩溃。

assign:主要用于基础数据类型,表示直接赋值。

nonatomic,atomic:表示属性是否是原子性的,即线程安全的,一般情况下使用nonatomic即可,表示非原子性的,因为使用atomic的话会进行一些额外的花销(对属性加锁)。

readwrite,readonly:表示属性是只读的还是可以读写的。

unsafe_unretained:对象被释放后该指针就成为了野指针。非特殊情况不建议使用。

    copy:主要用于字符串,copy属性中源对象的修改不会影响到copy后的对象内容。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

iOS 属性学习笔记

一、内存相关1、内存分区: 不需要程序员管理 基本数据类型(struct enum int double float char等)不需要 存储在栈区 -------- 栈区 -------- 需要程序...

IOS学习笔记(页面传值:属性传值,协议代理传值,闭包传值)

1.属性传值,代理协议传值 创建视图控制区,导航视图控制器 在AppDelegate类下  func application()方法下   let vc = ViewControll...

iOS学习笔记--UIView的常见属性及方法,UIViewAnimationWithBlocks

@interface UIView : UIResponder /** * 通过一个frame来初始化一个UI控件 */ - (id)initWithFrame:(CGRect)frame; ...

iOS学习笔记-019.UIScrollView的基本属性和用法

UIScrollView的基本属性和用法 一UIScrollView的作用 二UIScrollView的属性 UIScrollView的常见属性 UIScrollView的其他属性 三ScrollVi...

IOS学习笔记-属性

@property预编译指令的作用是自动声明属性的setter和getter方法。 @synthesize也是一种新的编译器功能,它表示“创建了该属性的访问代码”。当遇到@synthesize rai...

ios学习笔记-属性列表(做一个简单的记事本)

对于只需要保存简单的数据的应用,使用属性列表是一个不错的选择,nsarray,nsdictionary都提供了 array writeToFile: atomically:和arrayWithCont...

iOS学习笔记-072.CALayer02——transform属性

CALayer02transform 一CATransform3D基本介绍 二CATransform3D Key Paths 三代码 四图示CALayer02——transform一、CATransf...

iOS学习笔记-010.UILabel的常用属性

UILabel的常用属性 一UILabel常用属性1实例化和设置文字 二UILabel常用属性2设置文字颜色及阴影效果 三UILabel常用属性3设置对齐方式及换行 四UILabel常用属性4设置形变...

IOS学习笔记01-关于objective-c的成员属性

在我接触过的所有编程语言中,obj-c的语法无疑是最独特的,(其次可能就是Python了吧,因为没有花括号),尤其是其中的@property,@synthesize。今天就对在这过程中遇到的几个让我迷...

iOS学习笔记-----UITextField与UITextView属性与方法

`11
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)