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个不同的数据源,还是有其他办法解决的

时间: 2024-10-17 20:44:44

iOS开发——面试笔试精华(二)的相关文章

iOS开发——面试笔试精华(四)

面试笔试精华(四) 1.        Object-C有多继承吗?没有的话用什么代替?? 1>  OC是单继承,没有多继承 2>  有时可以用分类和协议来代替多继承 2.        Object-C有私有方法吗?私有变量呢?? 1>  OC没有类似@private的修饰词来修饰方法,只要写在.h文件中,就是公共方法 2>  可以直接在.m文件中(比如类扩展)声明和实现方法,对编译器来说是私有的 3.        关键字const什么含义? const int a; int

iOS开发——面试笔试精华(三)

面试笔试精华(三) 1.        When to use NSMutableArray and when to use NSArray? 什么时候使用NSMutableArray,什么时候使用NSArray? 1>   当数组元素需要动态地添加或者删除时,用NSMutableArray 2>   当数组元素固定不变时,用NSArray 2.       Give us example of what are delegate methods and what are data sourc

iOS开发——面试笔试精华(一)

面试笔试精华(一) 1.        #import 跟#include.@class有什么区别?#import<> 跟 #import”"又什么区别? 1>  #import和#include都能完整地包含某个文件的内容,#import能防止同一个文件被包含多次 2>  @class仅仅是声明一个类名,并不会包含类的完整声明;@class还能解决循环包含的问题 3>  #import <> 用来包含系统自带的文件,#import “”用来包含自定义的

iOS开发CoreAnimation解读之二——对CALayer的分析

iOS开发CoreAnimation解读之二——对CALayer的分析 一.UIView中的CALayer属性 1.Layer专门负责view的视图渲染 2.自定义view默认layer属性的类 二.几种系统的Layer类 1.CAEmitterLayer 2.CAGradientLayer 3.CAEAGLLayer 4.CAReplicatorLayer 5.CAScrollLayer 6.CAShapeLayer 7.CATextLayer 8.CATiledLayer 9.CATrans

IOS开发学习笔记(二)-语音识别(科大讯飞)

上次简单地讲解了如何利用科大讯飞完成语音合成,今天接着也把语音识别整理一下.当然,写代码前我们需要做的一些工作(如申请appid.导库),在上一篇语音合成的文章当中已经说过了,不了解的可以看看我上次的博文,那么这次直接从堆代码开始吧. 详细步骤: 1.导完类库之后,在工程里添加好用的头文件.在视图里只用了一个UITextField显示识别的内容,两个UIButton(一个开始监听语音,一个结束监听),然后引入类.添加代理,和语音合成的一样. MainViewController.h 1 #imp

iOS开发面试高频题

iOS开发面试高频题,面试不再懵逼 目录 前端技术2016年5月4日 对于要面试iOS开发的同学,可能已经看了很多的面试题.但是网上很多的面试题有些很全,但是没有重点,有些又太少.今天小编给大家整理了一些比较重要和经常问的面试题,总共20个,半小时之内就可以看完. 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? 答: Object-c的类不可以多重继承;可以实现多个接口,通过实现多个接口可以完成C++的多重继承;

iOS开发——面试篇&amp;面试总结(二)

面试总结(二) 1. 风格纠错题 修改方法有很多种,现给出一种做示例: 下面对具体修改的地方,分两部分做下介绍:硬伤部分和优化部分 .因为硬伤部分没什么技术含量,为了节省大家时间,放在后面讲,大神请直接看优化部分. 优化部分 1)enum建议使用 NS_ENUM 和 NS_OPTIONS 宏来定义枚举类型,参见官方的 Adopting Modern Objective-C 一文: 1 2 3 4 5 //定义一个枚举 typedef NS_ENUM(NSInteger, CYLSex) {   

iOS开发——面试指导

iOS面试指导 一 经过本人最近的面试和对面试资料的一些汇总,准备记录这些面试题,以便ios开发工程师找工作复习之用,本人希望有面试经验的同学能和我同时完成这个模块,先出面试题,然后会放出答案. 1. 你使用过Objective-C的运行时编程(Runtime Programming)么?如果使用过,你用它做了什么?你还能记得你所使用的相关的头文件或者某些方法的名称吗? 答案:Objecitve-C的重要特性是Runtime(运行时),在#import <objc/runtime.h> 下能看

iOS开发——面试篇&amp;OC基本语法总结(面试)

OC基本语法总结(面试) C和OC对比 OC中主要开发在什么平台上的应用程序? 答:可以使用OC开发Mac OS X平台和iOS平台的应用程序 OC中新增关键字大部分是以什么开头? 答:OC中新增关键字大部分是以@开头 OC中新增加了那些数据类型? 答: Block类型 指针类型(Class, id类型) 空类型 特殊类型(SEL, nil) 面向对象特性是什么? 答:继承性,封装性,多态性 import和#include有什么区别? 答:import 的功能和 include一样, 是将右边的