美文网首页
iOS属性的关键字

iOS属性的关键字

作者: 天空知诚 | 来源:发表于2020-04-10 10:26 被阅读0次

常用属性关键字:natomic、nonatomic、assign、weak、strong、retain、copy、unsafe_unretained、readwrite、readonly

另外还有一些修饰关键字__weak、__strong、__block、@synthesize、@dynamic

其中strong、weak是ARC环境下才使用,retain是MRC环境下才使用。

natimic:原子操作,默认关键字,只在其相关的setter和getter方法时有加锁安全机制,其他线程安全不负责;

nonatimic:非原子操作,没有加锁安全机制,但是访问会提高效率;

assign:主要用来修饰基本数据类型、枚举、结构体,MRC情况下的OC对象为避免循环引用也可用assign,不增加引用计数(有点类似ARC下的weak);

weak:ARC情况下使用,修饰OC对象,不增加引用计数,与assign不同的是对象销毁时会将对应的指针变量置nil;

strong:ARC情况下使用,修饰OC对象,不会生成新的内存地址,增加引用计数;

retain:MRC情况下使用,修饰OC对象,不会生成新的内存地址,增加引用计数,与strong类似,但需在dealloc中release一次;

copy:修饰不可变类型对象和block,会生成新的内存地址,对原对象的引用计数不会发生变化;

unsafe_unretained:等同于weak,但是对象销毁时不会将对应指针变量置nil;

readwrite:默认关键字,会自动生成对应的setter和getter方法;

readonly:只会自动生成getter方法,一般是供外界只读,不可修改;

__weak:ARC情况下使用,弱引用对象,避免循环引用,主要用在block的情况下;

__strong:ARC情况下使用,强引用对象,一般与__weak一起使用,防止在block里面用__weak修饰的对象过早被释放;

__block:允许block改变外部传进的变量值;

@synthesize:可对属性的成员变量进行重命名;
比如

@property (nonatomic, copy) NSString *string;

用@synthesize string = abcd修饰,那么只有名为abcd的成员变量,没有_string的成员变量

@dynamic:告诉编译器,属性的setter方法和getter方法由用户自己实现,不自动生成,若是用户没有自己实现,那么在运行到该属性的点语法时会由于找不到setter和getter方法而导致崩溃。

相关文章

  • iOS属性关键字

    iOS属性关键字 引言 学习 iOS 开发的人,大多都绕不开属性关键字—— assign,weak,unsafe_...

  • iOS开发---属性关键字详解

    iOS开发—属性关键字详解 @Property 什么是属性? 属性(property)是Objective-C的一...

  • iOS objective-c 属性关键字

    首先iOS objective - C有以下属性关键字strongweakassignatomicnonatomi...

  • iOS - 基础

    iOS 属性修饰关键字都有哪些? atomic 原子性访问,对属性赋值的时候加锁 noatomic 非原子...

  • ios9新特性(关键字)

    嗯嗯,马上就要 发布iOS新的版本了。嗯,码农又该忙碌了 ios9新特性(关键字) 新出的关键字:修饰属性,方法的...

  • IOS 常用关键字基础大全

    ios声明属性时,在ARC环境下常用到的关键字,readonly、readwrite、nonatomic、...

  • iOS9新特性之关键字

    iOS9新特性之关键字 iOS9新出的关键字:用来修饰属性,或者方法的参数,方法的返回值 好处:1.迎合swift...

  • iOS中的修饰关键字

    1. iOS中定义属性、变量的修饰关键字 在声明@property 属性、变量时,总是要在括号中写上assign、...

  • iOS 中weak的实现

    只要学过 iOS 的人,都会对 strong、weak、copy等关键字应该都会很熟悉。weak 属性关键字就是弱...

  • iOS9新特性

    01-iOS9新特性之关键字 iOS9新出的关键字:用来修饰属性,或者方法的参数,方法的返回值 好处:1.迎合sw...

网友评论

      本文标题:iOS属性的关键字

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