总结一下在金山面试ios开发时问到的问题

前几天去了金山的wps部门面试ios的开发实习生,虽然好像是勉强过了二面,但好像还是gg了,总结一下面试时问到的问题

1.如何在不改动项目原有的代码前提下,使项目中每个Controller的viewDidLoad方法都输出一句话?(不能在原有的文件添加删除或改掉代码,但可以新建文件写代码)

2.除了使用view.layer.cornerRadius来设置圆角以外,还有什么其它方法设置圆角,使用view.layer.cornerRadius有什么坏处?

3.view和layer有什么区别?

4.block有几种类型?分别是?

5.block中如何防止循环引用?为什么在block中要加入__strong __typeof?

6.利用cocoapods管理第三方库,是如何实现读取pod工程中的文件的?

7.说说arc的工作原理,他是如何管理对象或变量的释放?

8.说说ios中多线程有哪几种实现方法?谈谈对gcd的理解?

我就记得这么多了,有些问题忘了,还有些是我的项目中具体的问题。

答案:

1.先创建一个新的文件实现一个方法输出一句话,然后利用runtime机制把uiview中的viewDidLoad方法与新建的方法进行交换,具体实现看这篇文章

2.总共3种方法

    1.通过设置layer.cornerRadius
    2.使用贝塞尔曲线UIBezierPath和Core Graphics框架画出一个圆角
    3.使用CAShapeLayer和UIBezierPath设置圆角

具体实现看这篇文章

3.主要这几点

   1.每个 UIView 内部都有一个 CALayer 在背后提供内容的绘制和显示,并且 UIView 的尺寸样式都由内部的 Layer 所提供。两者都有树状层级结构,layer 内部有 SubLayers,View 内部有 SubViews.但是 Layer 比 View 多了个AnchorPoint
   2.在 View显示的时候,UIView 做为 Layer 的 CALayerDelegate,View 的显示内容由内部的 CALayer 的 display
   3.CALayer 是默认修改属性支持隐式动画的,在给 UIView 的 Layer 做动画的时候,View 作为 Layer 的代理,Layer 通过 actionForLayer:forKey:向 View请求相应的 action(动画行为)
   4.layer 内部维护着三分 layer tree,分别是 presentLayer Tree(动画树),modeLayer Tree(模型树), Render Tree (渲染树),在做 iOS动画的时候,我们修改动画的属性,在动画的其实是 Layer 的 presentLayer的属性值,而最终展示在界面上的其实是提供 View的modelLayer
   5.两者最明显的区别是 View可以接受并处理事件,而 Layer 不可以

(最重点)两者最明显的区别是 View可以接受并处理事件,而 Layer 不可以

具体看这里

4. 三种

 1._NSConcreteGlobalBlock 全局静态
 2._NSConcreteStackBlock 保存在栈中,出函数作用域就销毁
 3._NSConcreteMallocBlock 保存在堆中,retainCount == 0销毁

5.

在调用block前使用__weak typeof (self) weakSelf = self;即可(即用一个弱指针指向self,这样的话在block中调用完weakSelf这个弱指针就会自动释放)
当block涉及多线程中调用self时就使用 __strong __typeof(weakself)strongSelf = weakself;(即再用一个强指针指向weakself这个弱指针,防止在block调用过程中self被释放)
建议在block中都加上__strong __typeof(weakself)strongSelf = weakself; 不会有任何坏处

6.利用workspace,具体看这篇文章

7.Cocoa采用了引用计数(retain count)机制,当一个对象的retain count=0时,在Mrc(即非arc)中时需要手动添加 [xxx release] ; 这样一句代码释放对象,但arc中这个系统已经默认帮你加上了,只要retain count=0就自动调用,当然过程还要复杂点,具体体看这篇文章

8. 四种(当时答了三种orz)

1.Pthreads
2.NSThread
3.GCD
4.NSOperation & NSOperationQueue

关于gcd的话我当时大概讲了一下队列同步异步这些,当时也讲得并不完整,毕竟有些东西紧张起来还是忘了…………
具体的话看这里

虽然这次面试并不成功,但至少吸取了点经验吧~
另外…………二本的我求一份ios或unity的实习orz……谢谢orz

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

推荐阅读更多精彩内容