黑马程序员技术交流社区

标题: IOS面试小知识点 [打印本页]

作者: Change.+    时间: 2015-11-1 10:56
标题: IOS面试小知识点
1 问:手机屏幕分辨率是如何确定的?
答:屏幕分辨率分为点以及像素两种。Iphone4中是320*480点。但是其像素的缩放比例是2x。因此其像素分辨率是640*960。
2  问:+号定义的方法和-号定义的方法有什么区别?
答:(1)+号表示类的方法或者静态方法,-号表示实例的方法。
        (2)类的方法在类中可以直接引用,实例的方法必须经过实例化之后才能引用。
3  问:IOS的架构层共有几层?分别是哪几层?
答: 共分为四层,分别是coco Touch层 多媒体层 核心服务层  核心OS层
4  问:IOS中定义的实例变量可以在其它类中使用吗?
答:IOS中定义的实例变量一般是私有的,只能本类调用。不能在其它类中使用。
5  问:#import和#include有什么区别?
答: 在c语言中采用#include包含头文件,在OC中使用#import包含头文件。相比于#include来说,#import可以有效的防止头文件的重复引用。
6  问:什么是MVC?
答:  MVC :模型视图 控制器。模型表明你的程序是什么,实现了什么功能,完成了哪些工作。视图表明用户所看到的视图。控制器表明如何将你所做的展示给用户。三者是紧密联系不可分割的。M可以与C交互,但M不能直接与V交互。M与C之间可以通过API、KVO等多种方式交互。C与V之间可以通过outlet、action等实现交互。所有的View都是视图层的,它应该独立于模型层,由视图控制层来控制。所有的用户数据都是模型层,它应该独立于视图。所有的ViewController都是控制层,由它负责控制视图,访问模型数据。
•  Controller可以直接和Model通信
•  Controller也可以直接和View通信
•  Model和View永远不能直接通信
•  iOS中View和Controller的通信是透明和固定的,主要通过outlet和action实现
•  View使用Delegate接口和Controller同步信息
•  View不直接和数据通信,使用dataSource接口从Controller处获取数据
•  View的delegate和dataSource一般就是Controller
•  Controller负责为View翻译和格式化Model的数据
•  Model使用Notification & KVO的方式分发数据更新信息,Controller可以有选择的监听自己感兴趣的信息。
•  View可以监听广播信息,但一般不是Model发出的信息
一个完整的App就是很多MVC的集合
7  问:KVO与KVC的含义与区别?
答:KVO:Key-ValueObserving可以简单的理解为监听某一个已注册的关键词,通过观察这个关键词的变化来实现某些具体的功能。
KVC:
8  问:nil Nil null的区别?
答:  nil指向oc的对象,Nil指向OC的类,null可以指向任何类型,一般在c语言中使用。
9  问:什么是多继承?c、c++、oc中有多继承吗?
多继承是指一个类具有多个父类的情况。c和oc中没有多继承的概念。c++中有多继承的概念。oc中多重继承是用protocol 委托代理来实现的。
10 问: OC中如何进行内存管理?
答:  OC中目前多使用的是ARC(自动引用计数的内存管理模式)。采用这种模式不用手动的保留、释放所创建的内存。当引用计数值为0的时候,相应的内存被释放掉。
11 问:self和super的区别?
答: self有点像c++中的this,super类似于c++中父类进行调用。在实际使用中,self一般指向当前调用方法的类。Super调用方法的时候,一般是为了告诉编译器,这个所调用的方法是父类的方法,而非本类中的方法。

答: xcode下经常使用的文件类型有:.c.h .m .mm .cpp .hpp .o等。其中.c文件支持c语言,.h文件可以是c、c++、oc的头文件,.m支持c、oc,.mm支持c、c++、oc。.cpp支持c++语言。.hpp可以看作是c++的原文件与头文件混编得到的。.o是xcode下的编译文件。

15  问:ios中能否使用静态库或者动态库?

答:  apple禁止iphone使用动态链接库,但可以使用静态链接库。可以通过Cocoa TouchStatic Library编译静态链接库。也可以通过makefile编译声称libxxx.a的静态链接库文件来使用。

16  问:对于语句NSString*obj = [[NSData alloc] init]; obj在编译时和运行时分别时什么类型的对象?

答:编译时是NSString的类型;运行时是NSData类型的对象。

答: @package 类似C语言中变量和函数的私有扩展。一般最长用于框架类的实例变量。使用@private太限制,使用@protected或者@public又太开放。

@public可以被该类以及其它类直接调用。@private可以在该类中使用,但不能在其子类中使用。@protected可以在该类以及此类的子类中使用。对于64位图像,这样的成员变量可以在实现这个类的图像中随意访问。

18  问:#define声明一个常数,用以表明1年中有多少秒

答: #define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL

19  问:进程与线程的区别和联系?

答: 进程和线程都是操作系统中程序运行的基本单元。进程有独立的地址空间,一个进程崩溃后,在保护模式下不会对其它进程产生影响,而线程只是一个进程中的不同执行路径。线程有自己的堆栈和局部变量,但线程之间没有单独的地址空间,一个线程死掉就等于整个进程死掉。所以多进程的程序要比多线程的程序健壮,但在进程切换时,耗费资源较大,效率要差一些。但对于一些要求同时进行并且又要共享某些变量的并发操作,只能用线程,不能用进程。

20  问:堆和栈的区别

答: 1.申请大小:栈的大小一般是固定的,如windowns中一般是1、2M左右。

堆的存储空间是不连续的,大小上较为灵活。

2 分配方式:堆都是动态分配的,必须手动释放。栈有静态分配和动态分配两种。由编译器控制。

栈先进后出,效率较高。

21  问:ststic关键词的作用

答: 在函数体内定义的static变量的作用范围为该函数体。仅分配一次内存空间。相比较于auto变量来说,auto变量每次运行到auto变量的时候才进行内存分配,当程序不再需要这个变量的时候立即释放掉。在模块内的 static 函数只可被这一模块内的其它函数调用。在类中的 static 成员变量、函数属于整个类所拥有。

22  问:oc的优缺点

答:  objc优点:

1)  Cateogies 2)Posing 3)动态识别 4)指标计算 5)弹性讯息传递 6) 不是一个过度复杂的 C 衍生语言 7) Objective-C 与 C++ 可混合编程

2)  objc缺点:

1)  不支援命名空间 2)  不支持运算符重载 3) 不支持多重继承

23  问:深拷贝和浅拷贝的区别?

答:  浅拷贝是指新建一个新的指针,用于指向已经存在的内存空间。浅拷贝执行完之后,指针增加了一个,内存空间并没有增加。深拷贝是指开辟了一个新的内存空间指向这个新的内存空间。浅拷贝容易发生内存反复释放的错误。

24  问:如果不想修改原始的类,而又不使用子类,那么如何增加在类中增加一个新的方法呢?

答:  在OC中提供了一个新的手段来实现这个功能。OC中可以采用分类的方法来实现。例如

SomeClass.h

@interface SomeClass : NSObject{

}

-(void) print;

@end

分类的做法

@interface SomeClass (Hello)

-(void)hello;

@end

分类只能添加方法而不能添加实例变量。(hello为分类的名称)当然后面还要添加implementation

Extension(类扩展)是Category。Extension是Category的一个特例,其名字为匿名(为空),并且新添加的方法一定要予以实现。(Category没有这个限制)。

25  问:ViewController的 didReceiveMemoryWarning如何被调用?

答:  当ViewController收到内存不足的警告时会调用viewDidUnload方法。[supper didReceiveMemoryWarning]; 将viewController的view的所有subView移除,将view本身释放。

26  问:delegate委托和protocol协议

委托指明对象是当前方法的接受者。

A中有一个方法fun1,B想访问A中的方法。那么A和B可以约束一个共同的规则,将fun1放到协议中,那么B在访问A的时候就不必通过A来访问,可以利用委托的方式,访问协议中的fun1。

人们经常将委托与协议来一起使用,其实委托可以单独使用。


























作者: 菜鸟飞飞    时间: 2015-11-1 11:24
听起来好有用的样子,支持,支持,大牛{:2_30:}
作者: heiHorse    时间: 2015-11-1 12:18
好高端啊
作者: toveyloves    时间: 2015-11-1 12:22
涨姿势了~谢谢楼主
作者: sf1215225    时间: 2015-11-1 22:02
不明觉厉!!!!

作者: 谁在放荡    时间: 2015-11-1 22:21
厉害,收藏
作者: c9527    时间: 2015-11-2 13:52
好东西,收藏啦
作者: xiaobei    时间: 2015-11-2 19:20
真好啊,留下以后用
作者: 于鸿鹏    时间: 2015-11-23 15:50
学习了,感谢分享
作者: 爱尘iPhone    时间: 2015-11-23 17:35
这是面试过的真题吗?有些是不是很偏啊!
作者: Hunter9263    时间: 2015-11-23 18:36
学习了 非常给力
作者: cube川    时间: 2015-11-23 20:31
学习了。。。。
作者: 1170191405    时间: 2015-11-23 21:18
支持支持
作者: liuchuan_alex    时间: 2015-11-23 21:46
支持一下
作者: wangchao1992    时间: 2015-11-23 22:20
666666666666
作者: MrK    时间: 2015-11-23 22:34
不错 帮顶。。
作者: 一枚小刁民    时间: 2015-11-23 22:42
这个真得收藏

作者: liury    时间: 2015-11-23 23:11
C语言和OC部分可以检测一下自己是否还记得
作者: Mr.Yan    时间: 2015-11-23 23:20
涨芝士了!顶起~
作者: AGHM0312    时间: 2015-11-23 23:24
瞄一眼,看一看
作者: paulchoi1    时间: 2015-11-23 23:27
长知识了
作者: 黑马小向    时间: 2015-11-23 23:35
收藏了 谢谢
作者: gsclemon    时间: 2015-11-23 23:56
好高端!值得收藏一下下!
作者: 刘耀宗    时间: 2015-11-24 00:14
感觉很多都会,但是要自己去说出来就不行了,看来还是得好好背背概念
作者: liruixue    时间: 2015-11-24 08:50
为什么好多问题都没加过,学了这么久好伤心,这是面试的知识点??
作者: 心程变    时间: 2015-11-24 09:24
不明觉厉,不知道是哪的面试题
作者: 超人不会飞啊    时间: 2015-11-24 09:31
收藏学习了
作者: lujia1010    时间: 2015-11-24 09:34
这个不错,必须顶一下
作者: 李艳兵    时间: 2015-11-24 10:46
不明觉厉
作者: linexs    时间: 2015-11-24 12:24
mark,先收藏
日后再看
作者: fenghun1991    时间: 2015-11-24 22:33

涨姿势了~谢谢楼主
作者: 唐阿丽    时间: 2015-11-24 23:10
涨姿势了~谢谢楼主
作者: mr.late    时间: 2015-11-24 23:32
好东西
作者: 乔庆芳    时间: 2015-11-25 14:48
先学习了,收藏,用的时候仔细看看
作者: peiyu    时间: 2015-11-25 16:43
就这些吗?有没有全面一点的
作者: 453702877    时间: 2015-11-25 18:26
学习学习,参考一下。
作者: iOS-lye    时间: 2015-11-25 21:40
准备开始学习oc,楼主的分享很好,了解到到底应该学习那些重点知识。
作者: qinxiaodong    时间: 2015-11-25 22:16
学习了!优秀
作者: qinxiaodong    时间: 2015-11-25 22:18
学习了!优秀
作者: 学习黑马精神    时间: 2015-11-25 22:18
那么辛苦,不知道楼主有技术分没?
作者: IPswhatb“is”    时间: 2015-11-25 23:35
支持到底啊
作者: 安阳夜影    时间: 2015-11-25 23:40
写的挺好,赞一个!!!
作者: Newbee_123    时间: 2015-11-25 23:49
学习了,感谢分享。。
作者: blazehot18    时间: 2015-11-25 23:53
好不错!加油
作者: 罗文强    时间: 2015-11-26 00:13
已收藏,谢谢楼主分享!
作者: 长厢厮守℡    时间: 2015-11-26 08:13
先收藏再说`~
作者: OnTheWay_1314    时间: 2015-11-26 11:51
好实用的说,果断收!谢谢楼主!
作者: cube川    时间: 2015-11-26 18:47
顶一个。。
作者: cbl16888    时间: 2015-11-26 21:40
这个真心不错,收藏哦
作者: 红龙果    时间: 2015-11-27 00:08
好东西,好东西,6666
作者: Tmac90301    时间: 2015-11-27 00:11
好高端的贴子,收藏了,谢谢楼主
作者: chaixuan.c    时间: 2015-11-27 00:13
很不错!
作者: QQ15862772896    时间: 2015-11-27 00:51
已收藏  谢谢分享
作者: QQ15862772896    时间: 2015-11-27 00:55
好帖子  顶一下
作者: 韦德460    时间: 2015-11-27 08:36
这个得收藏,留着以后用!!!
作者: zhuwenjia    时间: 2015-11-27 22:19
谢谢。。。。。。
作者: 106105076    时间: 2015-11-27 22:26
先收藏了!!!!!
作者: hailiqh    时间: 2015-11-27 22:34
好多没见过的知识点啊!
作者: 453702877    时间: 2015-11-27 22:41
可以不错哦。
作者: SimonLo    时间: 2015-11-27 22:54
这个必须收藏~
作者: 杨立鹏    时间: 2015-11-28 19:08
长知识了!
作者: MillerD    时间: 2015-11-28 20:21
这个真的是有用
作者: sunyongji    时间: 2015-11-28 20:54
随时关注黑马动态,总有你意想不到的惊喜!!!
作者: xianglin123    时间: 2015-11-28 22:05
这个要顶
作者: cherrycool    时间: 2015-11-28 22:13
面试的内容还是很丰富的啊
作者: 649685603    时间: 2015-12-8 21:19
很有趣的样子
作者: xianglin123    时间: 2015-12-8 21:28
多谢分享
作者: 刘炼1993    时间: 2015-12-8 21:48
  可以 可以
作者: AGHM0312    时间: 2015-12-8 21:49
刚刚基础班结课,还很远
作者: joiezw    时间: 2015-12-9 16:47
有用,现在好多还不知道啊
作者: Missgod    时间: 2015-12-9 19:39
这个吊,必须收藏!
作者: fengcommon    时间: 2015-12-9 22:35
厉害,先留着了
作者: MrK    时间: 2015-12-9 22:49
不错。。

作者: Change.+    时间: 2015-12-9 23:10
菜鸟飞飞 发表于 2015-11-1 11:24
听起来好有用的样子,支持,支持,大牛

谢了啊

作者: Change.+    时间: 2015-12-9 23:11
黑马小向 发表于 2015-11-23 23:35
收藏了 谢谢

谢谢支持
作者: Change.+    时间: 2015-12-9 23:13
学习黑马精神 发表于 2015-11-25 22:18
那么辛苦,不知道楼主有技术分没?

有技术分啊,,,,,有点少
作者: pn314754148    时间: 2015-12-9 23:13
知识真是多得没边!
作者: Change.+    时间: 2015-12-9 23:16
liury 发表于 2015-11-23 23:11
C语言和OC部分可以检测一下自己是否还记得

          ????    一个面向对象,一个面向过程...
作者: Change.+    时间: 2015-12-9 23:17
pn314754148 发表于 2015-12-9 23:13
知识真是多得没边!

是呀   ,,,,,学无止境
作者: wkop    时间: 2015-12-9 23:21
果断收藏!!!顶起
作者: 张迷    时间: 2015-12-9 23:33
就业面试和辅导面试都用得到,收藏谢谢!
作者: 张迷    时间: 2015-12-9 23:34
好东西是,收藏了
作者: zfl920817    时间: 2015-12-9 23:43
谢谢大神,为黑马努力
作者: konglong    时间: 2015-12-10 01:03
顶起,好强大
作者: zfl920817    时间: 2015-12-10 15:41
学了一点,表示看不懂
作者: me1127    时间: 2015-12-11 10:02
果然都是高大上的感觉,作为新手  我改加油了
作者: zfl920817    时间: 2015-12-11 21:33
厉害,我也会的
作者: 穿礼服的猫    时间: 2015-12-23 20:42
感谢分享
作者: aaatomxxx    时间: 2015-12-23 21:30
这是汇总 还是一次问这么多啊  LZ?
作者: Cheryl_S2puu    时间: 2015-12-23 22:01
受教了  赞一个
作者: 1753795760    时间: 2015-12-23 22:14
厉害  正在学习中
作者: pn314754148    时间: 2015-12-23 22:18
这个不错!!!
作者: 韦德460    时间: 2015-12-23 23:30
好东西!!!!
作者: 364827317    时间: 2015-12-24 00:06
兄弟,这都是你面试的时候的题目吗?怎么我看有些好像视频里都没讲过的
作者: littp    时间: 2015-12-24 00:41
多谢 分享~ 保存下来  日后必有用处
作者: 15931110616    时间: 2015-12-24 13:24
收藏了。
作者: 木叶    时间: 2015-12-24 20:23
很好,顶一个
作者: 周翔    时间: 2015-12-24 20:56
高端大气上档次!666666666666666666666
作者: tangtang.    时间: 2015-12-26 11:09
打什么V5
作者: 劉一刀    时间: 2015-12-26 12:14
很棒 支持一下




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2