接到的电话面试,人比较随和,当时IOS有一段时间没怎么碰了,因为近期一直在用C++,QT做IM。很多回答我都扯到了C++上,所以可能没戏- -!
回想一下,大概有如下几个问题:(都是很常见的问题)
1.谈谈Objective-c中的内存管理
这个问题比较广泛,自己分别对 OC中指针,对象的创建与释放,autoRelease/autoReleasePool,arc,编译中对arc文件的编译区分,以及局部变量尽量不要new等方面都说了一点。
2."什么是谓词?"
我表示没有听过。后台查了一下,表示很无语,其实就是C++中断言的概念,一般用在函数入口,不满足条件直接退出执行。
3.的页面传值有哪些?
当时脑袋短路了,一想好像就初始化的时候,还有一个通知。后来回来又想想,delegate不也是吗?
4.IOS更新版本的时候,如何适配机型?
我描述了一下如IOS6升IOS7的时候,一些控件的改变,如Navigation和StatusBar合并的事,一些修改Navigation背景颜色用hintColor。
(他让我说一下若何用图片替换导航栏),我当时忘记API了,只表示自己换过,说用initCustomView,后来发现应该是setBackgroundImage.
还有对机型的适配问题,我一直使用代码写UI的,不用xib之类。所以相对布局的情况下,改动较小
5.说说block
由于在自己的项目中也没有自己写block,所以也就说了自己用block写过测试,递归算法之类。具体在用第三方包中倒是常见,block和java中的匿名内部类存在着很大的相似性
6.用什么做网络连接?
ASIHttpRequest
7.用过什么数据库第三方包?
没用过。一般的sqlite的CRUD都是自己写的,不是很复杂,而且项目中现在使用的是苹果的xcdatamodel,类似数据库的文件系统
8.用过哪些第三方的包?
举了一些ASIHTTP,ImageLoader,WebCache,AutoNavi/Baidu Map/Google Map,shareSDK等等。
PS:有点遗憾,忘记说github了,其实我觉得用过什么不重要,重要的是你能找到你需要的
9.平时都看什么书。
最近在看<C++高质量编程>
10.一般去那些技术网站?
csdn,iteye,博客,IOS的话一般cocoachina