美文网首页ios开发专题
iOS 基础知识回顾

iOS 基础知识回顾

作者: zl520k | 来源:发表于2018-09-30 14:53 被阅读2次

我们开发的时候,定义变量的时候,会给变量定义响应的属性。

在ARC情况下,默认属性有:atomic,readwrite,如果是指针类型默认:strong,简单变量:assign。

在MARC情况下,默认属性有:atomic,readwrite,如果是指针类型默认:retain,简单变量:assign。

其中还有其他的属性,例如:retain,nonatomic,readonly,weak,unsafe_unretained,copy。

当在MARC情况下,atomic,nonatomic,readwrite,readonly,retain,copy,assign都可以使用。

在ARC情况下,在MARC下又增加strong,unsafe_unretained,weak属性。

注意,在ARC情况下,定义Block对象时,strong和copy效果是一样,现在定义Block的时候,都是写成copy属性,如果写成strong,效果和copy一样的。

以下一些说法,都是在ARC情况下,

@property NSUInteger costLimit;

//默认是atomic, readwrite,assign

@property (nonatomic, copy) NSString *carNo;

//nonatomic,readwrite,copy,其中注意,在赋值的时候,要执行拷贝操作

atomic:原子操作,提供多线程安全操作,相当于加了无形锁操作,但也不是绝对安全。

nonatomic:非原子操作,禁止多线程,提高性能。

readwrite:读写权限

readonly: 只读权限,如果不想把变量在外部修改,定义这个属性,防止外部修改,只用本类中修改这个变量。

assign:简单变量定义。

retain和strong、copy都是针对的指针变量,将拥有指针的所有权。

weak:没有拥有指针的所有权,当指向它的变量释放的时候,weak定义的变量,也将自动释放。

unsafe_unretained:没有拥有指针的所有权,当指向它的变量释放的时候,unsafe_unretained定义的变量,不会自动释放。这个属性定义的变量,在使用的时候,要检查指向它的变量是否已经释放,如果释放,在使用,程序会崩溃的。

nullable:表示变量可以null或者nil。

nonnull:表示变量不能为空。

NS_ASSUME_NONNULL_BEGIN与NS_ASSUME_NONNULL_END之间定义的变量都是nullable,如果不想为nullable,必须定义nonnull标记了。

null_unspecified :不确定是否为空。

null_resettable setter 可以为空, getter 不为空。

相关文章

  • iOS 面试各要点 暂记

    ## iOS常用问题总结#### iOS基础知识回顾##### 1、为什么说Objective-C是一门动态的语言...

  • iOS 基础知识回顾

    我们开发的时候,定义变量的时候,会给变量定义响应的属性。 在ARC情况下,默认属性有:atomic,readwri...

  • OC底层知识(十一) : 多线程

    一、简介:多线程在之前进行过一篇详细的基础博客 iOS多线程 二、多线程的基础知识回顾 1.1、iOS中的常见多线...

  • iOS 基础知识回顾——关于 property

    目录: 本质 修饰符 synthesize, dynamic KVO 与 Property @property 本...

  • iOS基础知识回顾-内存管理

    1引用计数器 1.1.什么是引用计数器,系统是如何判断什么时候需要回收一个对象所占用的内存? 根据对象的引用计数器...

  • #文章收集

    iOS ios 开源框架源代码解析ios 基础知识github源码40个国人 iOS技术博客iOS app上传官网...

  • 5-1 从基础知识到JSWebAPI

    回顾js基础知识 JS-web-API 总结 回顾js基础知识 变量类型和计算 原型和原型链 闭包与作用域 异步和...

  • iOS基础知识点回顾(2)

    4月10号跟公司提了辞职。说好不会立马走,留一两个月的缓冲期给公司。这样一来,立马辞职投简历找工作的计划也就搁浅了...

  • iOS基础知识点回顾(1)

    4月10号跟公司提了辞职。说好不会立马走,留一两个月的缓冲期给公司。这样一来,立马辞职投简历找工作的计划也就搁浅...

  • iOS Realm数据持久化--Realm集合分页(四)

    iOS Realm数据持久化--Realm基础知识 (一)iOS Realm数据持久化--数据分页与复用原理 (二...

网友评论

    本文标题:iOS 基础知识回顾

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