美文网首页
iOS招聘面试问题(2018-XM)

iOS招聘面试问题(2018-XM)

作者: 爱恨的潮汐 | 来源:发表于2018-08-24 20:29 被阅读275次

1、自我介绍。

2、声明可变数组可以用weak修饰吗?和用strong修饰有什么区别?

答案:数组怎么能用weak啊,如果用weak,那么数组一创建完毕就被销毁了。只能用strong。强引用,不会被释放。

3、frame和bounds 有什么不同?

答案:frame指的是:该view在父view坐标系统中的位置和大小。(参照点是父亲的坐标系统)bounds指的是:该view在本身坐标系统中的位置和大小。(参照点是本身坐标系统)bounds指的是以自己为原点的坐标系。父视图bouns改变,子视图会移动。

4、0bjective-C 的类可以多重继承么?可以实现多个接口么? Category 是什么?重写一个类的方式用继承好还是分类好?为什么?

答案:Objective-c只支持单继承,如果要实现多继承的话,可以通过类别和协议的方式来实现,cocoa中所有的类都是NSObject 的子类,多继承在这里是用protocol委托代理来实现的。
Category是类别,一般用分类比较好,用Category去重写类的方法,仅对本Category有效,不会影响到其他类与原有类的关系

5、Category (类别)、Extension (扩展)和继承的区别?

答案:类扩展 Extension 可以为类添加属性和方法。
类别 Category 只能添加方法不能添加属性,添加属性调用的时候会 Crash,因为并不会为类 Category 的属性生成 Get 和 Set 方法。

6、什么时候用delete, 什么时候用Notification?

答案:delegate(委托模式):1对1的反向消息通知功能。
Notification(通知模式):只想要把消息发送出去,告知某些状态的变化。但是并不关心谁想要知道这个。

7、如何访问并修改一个类的私有属性?

答案:方式一:通过KVC访问并修改。

方式二:通过runtime访问并修改。获取对象属性列表。

8、 什么是TCP / UDP?

答案:
(1)TCP的全称为传输控制协议。这种协议可以提供面向连接的、可靠的、点到点的通信。,是面向连接的,建立连接需要经历三次握手,保证数据正确性和数据顺序。
TCP传输数据的形式:点对点传输数据 传输过程比较复杂 但是比较安全 不会出现丢包的现象(比如:QQ文件传输)
(2)UDP全称为用户数据报协议,它可以提供非连接的不可靠的点到多点的通信。是非连接的协议
UDP传输数据的形式:点对面传输数据 传输过程非常简单 但是比较不安全 经常出现丢包的现象 传输方只管传输不管接收方是否接受成功(比如:短信群发)
IP 由46位(0255之间的数字组成) 作为设备的唯一标识
(3)TCP 的三次握手
第一次握手:客户端发送 syn 包到服务器,并进入 syn_send状态,等待服务器进行确认;
第二次握手:服务器收到客户端的 syn 包,必须确认客户的SYN,同时自己也发送一个 SYN 包,即 SYN + ACK 包,此时服务器进入 SYN_RECV 状态;
第三次握手:客户收到服务器发送的 SYN+ACK 包之后,向服务器发送确认包, 此包发送完毕,客户端和服务器进入ESTABLISHED 状态,完成第三次握手。

9.ViewController生命周期

按照执行顺序排列:

initWithCoder:通过nib文件初始化时触发。
awakeFromNib:nib文件被加载的时候,会发生一个awakeFromNib的消息到nib文件中的每个对象。
loadView:开始加载视图控制器自带的view。
viewDidLoad:视图控制器的view被加载完成。
viewWillAppear:视图控制器的view将要显示在window上。
updateViewConstraints:视图控制器的view开始更新AutoLayout约束。
viewWillLayoutSubviews:视图控制器的view将要更新内容视图的位置。
viewDidLayoutSubviews:视图控制器的view已经更新视图的位置。
viewDidAppear:视图控制器的view已经展示到window上。
viewWillDisappear:视图控制器的view将要从window上消失。
viewDidDisappear:视图控制器的view已经从window上消失。

10.如何对iOS设备进行性能测试?

答: Profile-> Instruments ->Time Profiler

13.开发项目时你是怎么检查内存泄露?
1). 静态分析 analyze。
2). instruments工具里面有个leak可以动态分析。

11、谈谈 UITableView 的优化

(1). 正确的复用cell。
(2). 设计统一规格的Cell
(3). 提前计算并缓存好高度(布局),因为heightForRowAtIndexPath:是调用最频繁的方法;
(4). 异步绘制,遇到复杂界面,遇到性能瓶颈时,可能就是突破口;
(4). 滑动时按需加载,这个在大量图片展示,网络加载的时候很管用!
(5). 减少子视图的层级关系。
(6). 尽量使所有的视图不透明化以及做切圆操作。
(7). 不要动态的add 或者 remove 子控件。最好在初始化时就添加完,然后通过hidden来控制是否显示。
(8). 使用调试工具分析问题。

12、.什么是 KVO 和 KVC?KVO底层实现原理

KVO是基于runtime机制实现的
当某个类的属性对象第一次被观察时,系统就会在运行期动态地创建该类的一个派生类,在这个派生类中重写基类中任何被观察属性的setter 方法。派生类在被重写的setter方法内实现真正的通知机制
如果原类为Person,那么生成的派生类名为NSKVONotifying_Person
每个类对象中都有一个isa指针指向当前类,当一个类对象的第一次被观察,那么系统会偷偷将isa指针指向动态生成的派生类,从而在给被监控属性赋值时执行的是派生类的setter方法
键值观察通知依赖于NSObject 的两个方法: willChangeValueForKey: 和 didChangevlueForKey:;在一个被观察属性发生改变之前, willChangeValueForKey:一定会被调用,这就 会记录旧的值。而当改变发生后,didChangeValueForKey:会被调用,继而 observeValueForKey:ofObject:change:context: 也会被调用。
补充:KVO的这套实现机制中苹果还偷偷重写了class方法,让我们误认为还是使用的当前类,从而达到隐藏生成的派生类

13、在项目中,若出现以下的代码可能会有什么问题?(10分)

for(int i=0;i< 1000;i++) {
NSString *num = [NSString stringWithFormat:@"%d",i];//num是临时变量
}
答案:大次数循环内存暴涨问题。
该循环内产生大量的临时对象,直至循环结束才释放,可能导致内存泄漏,解决方法为在循环中创建自己的autoReleasePool,及时释放占用内存大的临时变量,减少内存占用峰值。

14、runtime如何实现weak变量的自动置nil?

答案:runtime 对注册的类, 会进行布局,对于 weak 对象会放入一个 hash 表中。 用 weak 指向的对象内存地址作为 key,当此对象的引用计数为0的时候会 dealloc,假如 weak 指向的对象内存地址是a,那么就会以a为键, 在这个 weak 表中搜索,找到所有以a为键的 weak 对象,从而设置为 nil。

15、项目中那些地方用过runtime?
16、项目上架流程,推送?

——>熟悉SVN吗?

——>工作中遇到过
难点,怎么解决的?

——>如果在职,问为什么跳槽?

——>期望薪资?9k,明天。

——>对于我们公司你还有什么想了解的?

相关文章

  • iOS招聘面试问题(2018-XM)

    1、自我介绍。 2、声明可变数组可以用weak修饰吗?和用strong修饰有什么区别? 答案:数组怎么能用weak...

  • iOS基础

    iOS面试必看,最全梳理 《招聘一个靠谱的iOS》面试题参考答案(上) 《招聘一个靠谱的iOS》面试题参考答案(下...

  • iOS面试知识点整理

    参考:2017年最新 iOS面试题及答案2017秋季校园招聘iOS开发岗位面试题集锦iOS面试题300+2017...

  • 《招聘一个靠谱的iOS》面试题参考答案

    《招聘一个靠谱的iOS》面试题参考答案(上)《招聘一个靠谱的iOS》面试题参考答案(下)

  • iOS面试汇总

    整理下最近面试时看的资料,希望对将面试的人有些帮助 一些比较靠谱的iOS面试题 链接:招聘一个靠谱的iOS《招聘一...

  • IOS面试

    如何面试 iOS 工程师? - iOS 开发 - 知乎 《招聘一个靠谱的iOS》面试题参考答案(上) - Coco...

  • IOS面试

    如何面试 iOS 工程师? - iOS 开发 - 知乎 《招聘一个靠谱的iOS》面试题参考答案(上) - Coco...

  • 十个iOS高级面试问题

    原文连接十个iOS高级面试问题不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问...

  • 丁香园iOS电话面试问题总结

    丁香园iOS电话面试问题总结 丁香园iOS电话面试问题总结

  • iOS习题连接整理

    iOS程序员6级考试 简书作者谈笑风声Smile的面试笔试题 招聘一个靠谱的ios iOS面试题大全-点亮你iOS...

网友评论

      本文标题:iOS招聘面试问题(2018-XM)

      本文链接:https://www.haomeiwen.com/subject/hebiiftx.html