iOS面试题(5)

1. 你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它

做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗?

Objecitve-C的重要特性是Runtime(运行时),在#import 下能看到相关

的方法,用过objc_getClass()和class_copyMethodList()获取过私有API;使用

```objective-c

Method method1 = class_getInstanceMethod(cls, sel1);

Method method2 = class_getInstanceMethod(cls, sel2);method_exchangeImplementations(method1, method2);

```

代码交换两个方法,在写unit test时使用到。

2. 你实现过多线程的Core Data么?NSPersistentStoreCoordinator,NSManagedObjectContext和NSManagedObject中的哪些需要在线程中创建或者传递?你是用什么样的策略来实现的?

没实现过多线程的CoreData(待实践)


3. Core开头的系列的内容。是否使用过CoreAnimation和CoreGraphics。UI框架和CA,CG框架的联系是什么?分别用CA和CG做过些什么动画或者图像上的内容。(有需要的话还可以涉及Quartz的一些内容)UI框架的底层有CoreAnimation,CoreAnimation的底层有CoreGraphics。

UIKit |

------------ |

Core Animation |

Core Graphics |

Graphics Hardware|

使用CA做过menu菜单的展开收起(太逊了)

4. 是否使用过CoreText或者CoreImage等?如果使用过,请谈谈你使用CoreText或者CoreImage的体验。CoreText可以解决复杂文字内容排版问题。CoreImage可以处理图片,为其添加各种效果。体验是很强大,挺复杂的。

5. NSNotification和KVO的区别和用法是什么?什么时候应该使用通知,什么时候应该使用KVO,它们的实现上有什么区别吗?如果用protocol和delegate(或者delegate的Array)来实现类似的功能可能吗?如果可能,会有什么潜在的问题?如果不能,为什么?(虽然protocol和delegate这种东西面试已经面烂了...)NSNotification是通知模式在iOS的实现,KVO的全称是键值观察(Key-value observing),其是基于KVC(key-value coding)的,KVC是一个通过属性名访问属性变量的机制。例如将Module层的变化,通知到多个Controller对象时,可以使用NSNotification;如果是只需要观察某个对象的某个属性,可以使用KVO。对于委托模式,在设计模式中是对象适配器模式,其是delegate是指向某个对象的,这是一对一的关系,而在通知模式中,往往是一对多的关系。委托模式,从技术上可以现在改变delegate指向的对象,但不建议这样做,会让人迷惑,如果一个delegate对象不断改变,指向不同的对象。

6. 你用过NSOperationQueue么?如果用过或者了解的话,你为什么要使用NSOperationQ

TA的最新馆藏

明星| 妈妈快看这里有天使!透明感...

死者之书 第 1 第1话 鼠绘漫画网

iOS中管理剪切板的UIPasteboard...[转]iOS开发 UIWebView访问https协...

NSXMLParser

21个高质量的Swift开源iOS App

推荐阅读

更多

10个Objective

上级向的十个iOS面试问题

iOS面试题合集(77道)【有答案...

iOS基础面试题(四)

iOS基础面试题(一)

iOS进阶面试题----Block部分

100个iOS开发/设计程序员面试题...

GitHub 上都有哪些值得关注学习...

iOS进阶面试题

wintelsui

212 馆藏 873

ueue,实现了什么?请描述它和GCD的区别和类似的地方(提示:可以从两者的实现机制和

适用范围来描述)。

使用NSOperationQueue用来管理子类化的NSOperation对象,控制其线程并发数目。GCD

和NSOperation都可以实现对线程的管理,区别是 NSOperation和NSOperationQueue是

多线程的面向对象抽象。项目中使用NSOperation的优点是NSOperation是对线程的高度抽

象,在项目中使用它,会使项目的程序结构更好,子类化NSOperation的设计思路,是具有

面向对象的优点(复用、封装),使得实现是多线程支持,而接口简单,建议在复杂项目中使

用。

项目中使用GCD的优点是GCD本身非常简单、易用,对于不复杂的多线程操作,会节省代码

量,而Block参数的使用,会是代码更为易读,建议在简单项目中使用。更详细的答案见我的这篇文章

7. 既然提到GCD,那么问一下在使用GCD以及block时要注意些什么?它们两是一回事儿么

?block在ARC中和传统的MRC中的行为和用法有没有什么区别,需要注意些什么?

使用block是要注意,若将block做函数参数时,需要把它放到最后,GCD是Grand Central

Dispatch,是一个对线程开源类库,而Block是闭包,是能够读取其他函数内部变量的函数。更详细的答案见我的这篇文章

8. 您是否做过异步的网络处理和通讯方面的工作?如果有,能具体介绍一些实现策略么?

使用NSOperation发送异步网络请求,使用NSOperationQueue管理线程数目及优先级,底

层是用NSURLConnetion,详细可见开源框架[LWConnetion](https://github.com/xunyn/关闭LWConnetionDemo)。

9. 对于Objective-C,你认为它最大的优点和最大的不足是什么?对于不足之处,现在有没有

可用的方法绕过这些不足来实现需求。如果可以的话,你有没有考虑或者实践过重新实现OC

的一些功能,如果有,具体会如何做?

最大的优点是它的运行时特性,不足是没有命名空间,对于命名冲突,可以使用长命名法或特

殊前缀解决,如果是引入的第三方库之间的命名冲突,可以使用link命令及flag解决冲突。

10. 你实现过一个框架或者库以供别人使用么?如果有,请谈一谈构建框架或者库时候的经验

;如果没有,请设想和设计框架的public的API,并指出大概需要如何做、需要注意一些什么

方面,来使别人容易地使用你的框架。

抽象和封装,方便使用。首先是对问题有充分的了解,比如构建一个文件解压压缩框架,从使

用者的角度出发,只需关注发送给框架一个解压请求,框架完成复杂文件的解压操作,并且在

适当的时候通知给是哦难过者,如解压完成、解压出错等。在框架内部去构建对象的关系,通

过抽象让其更为健壮、便于更改。其次是API的说明文档。

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

推荐阅读更多精彩内容