iOS开发——面试笔试精华(二)
面试笔试精华(二)
警告:一定要把英文题目过一遍,有些公司的题目故意弄成英文的!!!
1. Difference between shallow copy and deep copy?
浅复制和深复制的区别?
1> 浅拷贝:指针(地址)拷贝,不会产生新对象
2> 深拷贝:内容拷贝,会产生新对象
2. What is advantage of categories? What is difference between implementing a category and inheritance?
类别的作用?继承和类别在实现中有何区别?
1> 分类可以在不修改原来类模型的基础上拓充方法
2> 分类只能扩充方法、不能扩充成员变量;继承可以扩充方法和成员变量
3> 继承会产生新的类
3. Difference between categories and extensions?
类别和类扩展的区别?
1> 分类是有名称的,类扩展没有名称
2> 分类只能扩充方法、不能扩充成员变量;类扩展可以扩充方法和成员变量
3> 类扩展一般就写在.m文件中,用来扩充私有的方法和成员变量(属性)
4. Difference between protocol in objective c and interfaces in java?
oc中的协议和java中的接口概念有何不同?
1> Java的接口中声明的方法必须都实现
2> Oc的protocol中声明的方法并不一定要实现
5. What are KVO and KVC?
1> KVC是键值编码,可以通过一个字符串的key(属性名)修改对象的属性值
2> KVO是键值监听,可以监听一个对象属性值的改变
6. What is purpose of delegates?
代理的作用?
1> 两个对象之间传递数据和消息
2> 解耦,拆分业务逻辑
7. What are mutable and immutable types in Objective C?
oc中可修改和不可以修改类型?
1> mutable是可变类型,比如NSMutableArray,可以动态往里面添加元素
2> immutable是不可变类型,比如NSArray,固定的存储空间,不能添加元素
8. When we call objective c is runtime language what does it mean?
我们说的oc是动态运行时语言是什么意思?
1> 动态绑定:对象类型在运行时才真正确定
2> 多态性
9. what is difference between NSNotification and protocol?
通知和协议的不同之处
1> 通过NSNotification可以给多个对象传递数据和消息
2> 通过protocol(代理模式)只能给一个对象传递数据和消息
10. What is push notification?
什么是推送消息?
1> 本地推送:程序内部弹出通知到用户设备
2> 远程推送:由推送服务器推送通知到用户设备
11. What is Polymorphism?
关于多态性?
多态:父类指针指向子类对象
12. What is Singleton?
对于单例的理解
单例:保证程序运行过程中,永远只有一个对象实例
目的是:全局共享一份资源、节省不必要的内存开销
13. What is responder chain?
响应者链:
l UIResponder有一个nextResponder属性,通过该属性可以组成一个响应者链,事件或消息在其路径上进行传递
l 如果UIResponder没有处理传给它的事件,会将未处理的消息转发给自己的nextResponder
14. Difference between frame and bounds?
frame和bounds有什么不同?
1> frame以父控件的左上角为坐标原点
2> bounds以控件本身的左上角为坐标原点
15. Difference between method and selector?
方法和选择器有何不同?
通过一个selector可以找到方法地址,进而调用一个方法
补充:selector是一个方法的名字,method是一个组合体,包含了名字和实现.
16. Is there any garbage collection mechanism in Objective C.?
OC的垃圾回收机制?
1> OC 1.0没有垃圾回收
2> OC 2.0有垃圾回收,只能用在Mac上
3> iOS中有ARC机制,是编译器特性,垃圾回收是运行时特性
17. What is NSOperation queue?
1> 用来存放NSOperation对象的队列,可以用来异步执行一些操作
2> 一般可以用在网络请求等耗时操作
18. What is lazy loading?
延迟加载:比如控制器的view,在第一次用到view时才会调用loadView方法进行创建
19. Can we use two tableview controllers on one viewcontroller?
是否在一个视图控制器中嵌入两个tableview控制器?
从技术角度上分析,一个控制器内部添加2个表格控制器是没有问题的
20. Can we use one tableview with two different datasources? How you will achieve this?
一个tableView是否可以关联两个不同的数据源?你会怎么处理?
从对象属性上分析,tableView只有一个dataSource属性。当然,真要使用2个不同的数据源,还是有其他办法解决的
iOS开发——面试笔试精华(二)的更多相关文章
- iOS开发——面试笔试精华(四)
面试笔试精华(四) 1. Object-C有多继承吗?没有的话用什么代替? 1> OC是单继承,没有多继承 2> 有时可以用分类和协议来代替多继承 2. ...
- iOS开发——面试笔试精华(三)
面试笔试精华(三) 1. When to use NSMutableArray and when to use NSArray? 什么时候使用NSMutableArray,什么时候使用N ...
- iOS开发——面试笔试精华(一)
面试笔试精华(一) 1. #import 跟#include.@class有什么区别?#import<> 跟 #import”"又什么区别? 1> #imp ...
- iOS开发Swift篇—(二)变量和常量
iOS开发Swift篇—(二)变量和常量 一.语言的性能 (1)根据WWDC的展示 在进行复杂对象排序时Objective-C的性能是Python的2.8倍,Swift的性能是Python的3.9倍 ...
- iOS开发CoreAnimation解读之二——对CALayer的分析
iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二. ...
- iOS开发——面试指导
iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. ...
- ios开发——面试篇C语言精华
面试篇C语言精华 1.面向过程:分析解决问题所需要的步骤,然后用函数把这些步骤一步一步实 现. 面向对象:直接描述客观世界的对象及其相互关系.现实世界中任何实体都 可以看作是对象,对象之间通过消 ...
- ios开发——面试篇(一)
面试篇之内存管理与多线程 简述OC中内存管理机制.与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为 ...
- iOS开发——面试总结(一)
面试总结(一) 通过网络搜寻和自己总结经历找了一些IOS面试经常被问道的问题: 1.搞清楚touch事件的传递(事件的响应链) 事件的响应(responder chain) 只有继承了UIRespon ...
随机推荐
- 深入理解Java虚拟机 - 虚拟机内存划分
在内存管理方面,Java相对于C和C++的区别在于Java具有内存动态分配以及垃圾收集技术,但平时我们很少去关注JVM的内存结构以及GC,在出现内存泄露或溢出方面的问题,排查工作将变得异常艰难. ...
- OK335xS davinci mdio driver hacking
/******************************************************************************* * OK335xS davinci m ...
- Flask
#environ:一个包含所有HTTP请求信息的dict对象 #start_response:一个发送HTTP响应的函数 def application(environ, start_response ...
- 【JS】打印Excel——ActiveX控件
function viewToExcel(){ var filepath = "f:\\PrinterExcel.xls"; var xlApp; var xlBook; var ...
- About Wisdom
All human wisdom is summed up in two words --- wait and hope.人类所有的智慧可以归结为两个词---等待和希望. —— Alexandre D ...
- MongoDB之二基础入门(安装启动)
mongodb中有三元素:数据库,集合,文档,其中“集合” 就是对应关系数据库中的“表”,“文档”对应“行”. 一. 下载 上MongoDB官网 ,我们发现有32bit和64bit,这个就要看你系统了 ...
- codeforces 401D (数位DP)
思路:很明显的数位dp,设dp[i][j] 表示选取数字的状态为i,模m等于j的数的个数,那么最后的答案就是dp[(1<<n)-1][0].状态转移方程就是,dp[i|(1<< ...
- ASP.NET运行原理_2
当一个HTTP请求到服务器并被IIS接收到之后,IIS首先通过客户端请求的页面类型为其加载相应的.dll文件,然后在处理过程中将这条请求发送给能够处理这个请求的模块.在ASP.NET 3.5中,这个模 ...
- codeforce 604B More Cowbell
题意:n个球,分成k堆.问堆的最大值的最小. #include <bits/stdc++.h> typedef long long ll; using namespace std; int ...
- 5.2 CUDA Histogram直方图
什么是Histogramming Histogramming是一种从大的数据集中提取典型特征和模式的方式. 在统计学中,直方图(英语:Histogram)是一种对数据分布情况的图形表示,是一种二维统计 ...