Objective-C面试的常见问题

记录自己未曾搞懂的Objective-C问题,逐题补全。

1、谈谈多线程

iOS中有4套多线程的方案,他们分别是

  • Thread
  • Grand Central Dispatch
  • �Cocoa operations

一 、Thread
1)显式创建线程 NSThread
2)隐式创建线程 NSObject

二、 Cocoa Operations
1) NSInvocationOperation
2) NSBlockOperation
3)NSOperationQueue

三、 Grand Central Dispatch (GCD)
异步线程 dispatch_async
同步线程 dispatch_sync

重复执行线程 dispatch_apply

操作队列 创建 dispatch_queue_create

比较多线程技术

一、Thread

  • 优点:量级较轻
  • 缺点:需要自己管理线程的生命周期,线程同步。线程同步对数据的加锁会有一定的系统开销

二、Cocoa Operations

  • 优点:不需要关心线程管理,数据同步的问题,可以把精力放在自己需要执行的操作上

三、GCD

  • 优点: GCD基于C的API,非常底层,可以充分利用多核,能够轻松在多核系统上高效的运行并发代码,也是苹果推荐使用的多线程技术。

2、什么时候用GCD 什么时候用NSOperation 什么时候用NSThread

个人理解:

  • 当你想直接操控线程对象,并且手动管理线程的生命周期时,使用NSThred

  • 当你使用多核操作系统,并且想让代码更高效的运行,自动管理线程的生命周期,只需要告诉它执行什么任务的时候,使用GCD

  • 当你想使用一些在GCD中不容易复制的特性,更容易地添加任务的依赖关系使用NSOperation,并且可以很方便地取消一个NSOperation的执行


3、CoreData 和 数据库的区别

CoreData是数据持久化存储的最佳方式。

数据最终的存储类型:SQlite数据库、XML、二进制、内存里,或者自定义的数据类型。

好处:能够合理管理内存,避免使用SQlite的麻烦,高效。

CoreData是一种模型层技术,帮助你建立程序状态的模型层。CoreData也是一种持久化技术,能将模型对象的状态持久化到磁盘。

但是CoreData最重要的特点是:CoreData不仅是一种加载、保护数据的框架,它还能跟内存中的数据很好的共事。


4、响应者链

响应者链表示一系列的响应者对象。事件被交由第一响应者对象处理,如果第一响应者(first responder)不处理,事件沿着响应者链向上传递,交给下一个响应者(next responder)。一般来说,第一响应者是视图对象或者其子类对象,当其被触摸后事件由他自己处理,如果它不处理,事件就会被传递给他的视图控制器处理,然后是它的父视图(super View)对象,以此类推,直到顶层视图,接下来会沿着顶层视图(top View)到窗口(UIWindow对象)再到程序(UIApplication对象)。如果整个过程都没有响应这个事件,这个事件就会被丢弃。

一般情况下,在响应者链中,只要有对象处理事件,事件就停止传递,但有时候,可以在视图响应的方法中根据一些条件判断来决定是否需要继续传递事件。


5、对Runtime了解么
6、遍历构造器

遍历构造器 是一种快速创建对象的方式,它本质上是把初始化方法做了一次封装,方便外接使用。

  • 一定是一个类方法
  • 一定有返回值
  • 返回值类型 (id, instancetype)

便利构造器:+号方法

和自定义初始化方法的区别
自定义初始化方法(init) 初始化+赋值
遍历构造器: 开辟空间+初始化+赋值

Block

block是OC中的闭包形式
block来源:C语言 已经被弃用的一个观点:goto
解决block的循环引用:用__weak来修饰
如何修改block内的变量:__block修饰,可以更改block捕获的外部变量。

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

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,118评论 29 470
  • http://www.devstore.cn/essay/essayInfo/6525.html【原文地址】 序言...
    起名好难_fz阅读 632评论 1 1
  • 1.Difference between shallow copy and deep copy? 浅复制和深复制的...
    用心在飞阅读 987评论 0 9
  • 转自 iOS 面试常见问题最全梳理 序言 目前形势,参加到iOS队伍的人是越来越多,甚至已经到供过于求了。今年,找...
    ZMJun阅读 788评论 0 11
  • 昨天下午飞哥告诉我今天要我上台分享,主题是如何花钱。我笑了笑,第一反应拒绝,因为我恐怕是全场钱最少那个人吧,但是我...
    紫火蓝光阅读 327评论 0 1