面试复习-一些小集合

集合内部元素如何进行深复制

  1. 使用 initWithArray: copyItems:可以进行集合深复制(需要实现copyWithZone)
  2. 归解档

单例

1、alloc和allocWithZone都可以用于创建实例(其实是用于创建实例的时候分配内存空间)
2、alloc会默认调用allocWithZone方法
3、如果不重写allocWithZone方法,在调用alloc和allocWithZone方法产生的实例可能不是同一个实例,单例未真正实现

利用 runloop 解释一下页面的渲染的过程?

  1. 页面被 setNeedDisplay打上脏标记后,在当前runloop beforeWaitting的时候进行绘制。调用 [CALayer display]会去判断自己的代理是否实现了异步绘制代理 displayer: 此方法是异步绘制的入口,如果为实现,则进行系统绘制
  2. 如果已实现 则调用 [layer.delegate drawLayer:inContext:] 子线程代理生成对应bitmap(core grap方法),主线layer.cnotext=bitmap,

weak原理

  1. weak实现原理 weak内部结构
    1. sideTables weak_table weak_entry_t referrns,锁
  2. retaincount原理
  3. 内存布局

内存泄漏检测

MLeaksFinder (https://www.jianshu.com/p/eb2edcd24791?utm_source=desktop&utm_medium=timeline ):hook一些生命周期,用weak若引用,如果x秒后还在,则断言

  • Memory Leaks
  • Alloctions
  • Analyse
  • Debug Memory Graph

MRC set,get

- (void)setFssName:(NSString *)fssName {
    if (_fssName != fssName) {
        [_fssName release];
        _fssName = [fssName retain];
    }
}
- (NSString *)fssName {
    return [[_fssName retain] autorelease];
}
- (void)dealloc {
    [_fssName release];
    [super dealloc];
}

NSOperation GCD

  1. 可以添加任务依赖,方便控制执行顺序
  2. 可以设定操作执行的优先级
  3. 任务执行状态控制:isReady,isExecuting,isFinished,isCancelled
  4. 最大并发量

main函数之前

  1. 加载 class protocol +load 分类
  2. 动态链接库加载入内存
  3. 加载可执行文件

设计原则

  1. 单一职责:view layer
  2. 依赖导致:抽象不依赖实现,实现可依赖抽象。增删改查,业务层依赖抽象接口,不依赖具体实现
  3. 开闭原则:扩展开放,修改关闭。定义一个类,后续扩展性,数据结构定好,就是加接口,需要前期考虑周全
  4. 里氏替换:父类可以被子类替换,且功能无影响,KVO
  5. 接口隔离:专门协议,而不是一个庞大的协议。tableview:dataSource,delegate
  6. 迪米特:高内聚,低耦合。对象对其他类少了解

Dealloc 实现机制

  1. _objc_rootDealloc()
  • NONPointer_ISA
  • weakly_reference
  • has_assoc
  • has_cxx_dtor
  • has_sidetable_rc
  1. 有以上情况 object_dispose() ,无则free
  2. object_dispose() 流程为 objc_destructInstance() + free()
  3. objc_destructInstance() 为,
    有hasCxxDtor 则 object_cxxDestruct()
    有 hasAssocitatedObjects 则 object_remove_associations()
  4. 再执行 clearDeallocating()
    -sideTable_clearDellocating()
  • weak_clear_no_lock() 弱引用清空
  • table.refcnts.eraser() 引用计数表擦除该对象技术
  1. Dealloc结束
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • 一 基础知识1.如何令自己所写的对象具有拷贝功能? 目的 想让自己创建的类具有copy方法 第一个返回不可变类型 ...
    王家小雷阅读 1,325评论 0 6
  • 题目: 1. 讲一下你对iOS 内存管理的理解2. KVO实现原理3. 观察者模式4. 如果让你实现 NSNoti...
    林大鹏阅读 2,380评论 0 33
  • 作为一个开发者,有一个学习的氛围跟一个交流圈子特别重要,这是一个我的iOS交流群:638302184,不管你是小白...
    iOS开发之家阅读 3,568评论 0 18
  • 原文链接OC内存管理--对象的生成与销毁 在iOS开发中了,我们每天都会使用+ alloc和- init这两个方进...
    NeroXie阅读 2,260评论 3 4
  • 我是黑夜里大雨纷飞的人啊 1 “又到一年六月,有人笑有人哭,有人欢乐有人忧愁,有人惊喜有人失落,有的觉得收获满满有...
    陌忘宇阅读 8,521评论 28 53