OC-重要知识点个人记录

把OC中容易忘记、比较关键、面试常问、工作常用的一些知识点记录下来

property属性的参数:

  • weak:弱引用,
  • strong:强引用,一般对象适用strong,对对象持有,自身销毁时,所持有对象
  • retain: 保留对象 就在setter 和 getter方法中加入一些内存管理的代码,当属性是一个普通OC对象的时候,使用retain
  • assign: 直接赋值,不生成内存管理代码,属性是一个基本数据类型的时候,使用assign
  • copy: copy 复制对象副本,NSString 使用copy
  • atomic: 原子(默认),会生成线程安全的代码,速度慢,在调用setter方法时进行加锁操作
  • nonatomic: 非原子,不会生成线程安全的代码,速度快
  • readonly:只有setter方法,无getter方法
  • readwrite:可读可写,生成getter 与 setter方法

id类型:

万能型对象指针类型,动态类型,缺点是不会在编译时检查错误,优点是提供对象的多态特性

instancetype类型:

相对于id类型,它会自动进行类型检查,如果不一致就会报一个警告,instancetype 只可以作为返回类型

内存管理:

  • 栈: 局部变量:定义在方法或函数内部变量,由系统管理
  • 堆:动态存储区,由程序员进行管理
  • 野指针:只初始化了没有赋值或者指向的指针,或者对象被提前释放了的指针,访问野指针会造成程序崩溃
  • 空指针:指向nil 的指针

手动管理内存MRC:

谁调用new,alloc,retain,copy,multableCopy初始化,谁就要调用对应的release或autorelease;需要一个对象时就要retain,不需要一个对象了就要release

  • 循环引用: 为避免循环引用,有一个对象或者数据要使用assign参数,必须有一方是弱引用
  • autorelease: 自动释放池,延长对象生命周期,在自动释放池销毁时会对所有池中的的对象进行release操作
  • release:销毁对象

自动引用计数ARC:

自动管理内存,除了使用alloc,copy,retain时,要自己使用release和autorelease释放对象,其他都不需要你来管理内存

  • 强指针:默认所有的指针都是强指针
    只要是有强指针指向一个对象,那么这个对象就不会被释放
    只要是没有强指针指向一个对象,那么这个对象就被立即回收
    _strong 强指针标示,但是默认所有指针都是强指针,所以他没有用
  • 弱指针:弱指针指向的对象不影响对象回收
    注意:不要用弱指针指向一个刚刚创建出来的对象

cotogory分类:

扩展已有类的功能,添加私有的成员变量,属性和方法.

分类中属性不能生成setter和getter方法的实现方法,只有声明方法,也不会生成实现成员变量,不能添加和已有类相同的方法名

SEL:

一种数据类型,代表方法签名,通过SEL可以找到对象的对应的方法

使用关键字:@selector(方法名称)生成 SEL,target: action: 方法用到了

block:

代码块,一种用来封装代码的数据类型,可以使用在方法内部

作为函数参数类型的格式:返回值类型(^)(形参列表)

  • 在block 中可以访问局部变量的

  • 默认在block内部不能修改局部变量的值
    如果想修改局部变量的值,要再定义这个变量的时候,在前面加上__block

  • block需要使用copy属性:block在栈里面的,block内部要使用本地变量,那么必须在堆里面操作,copy是在堆内的。

protocol: 协议:

可以声明协议类型变量,协议分为required方法和optional方法,一个类可以同时遵循多个协议

委托代理机制:

在委托者中声明一个协议,然后创建一个delegate属性,被委托者遵守委托者的协议,然后实现委托者的协议,还要让被委托者成为委托者的代理

深浅复制:

  • 浅复制: 不会产生一个新的对象,只拷贝对象指针
  • 深复制: 会产生一个新的对象,完全拷贝,复制属性
    对于不可变的对象使用copy,是浅复制,使用mutablecopy是深复制
    对于可变对象使用copy或者mutablecopy都是深复制
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容