A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Change.+ 中级黑马   /  2015-11-1 10:56  /  7216 人查看  /  110 人回复  /   15 人收藏 转载请遵从CC协议 禁止商业使用本文

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。

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

























110 个回复

倒序浏览
听起来好有用的样子,支持,支持,大牛{:2_30:}
回复 使用道具 举报
heiHorse 来自手机 中级黑马 2015-11-1 12:18:20
藤椅
好高端啊
回复 使用道具 举报
toveyloves 来自手机 中级黑马 2015-11-1 12:22:13
板凳
涨姿势了~谢谢楼主
回复 使用道具 举报
不明觉厉!!!!
回复 使用道具 举报
谁在放荡 来自手机 中级黑马 2015-11-1 22:21:04
地板
厉害,收藏
回复 使用道具 举报
c9527 中级黑马 2015-11-2 13:52:28
7#
好东西,收藏啦
回复 使用道具 举报
真好啊,留下以后用
回复 使用道具 举报
chensc 金牌黑马 2015-11-2 19:58:20
9#
学习学习!
回复 使用道具 举报
学习了,感谢分享
回复 使用道具 举报
这是面试过的真题吗?有些是不是很偏啊!
回复 使用道具 举报
学习了 非常给力
回复 使用道具 举报
学习了。。。。
回复 使用道具 举报
支持支持
回复 使用道具 举报
支持一下
回复 使用道具 举报
666666666666
回复 使用道具 举报
MrK 初级黑马 2015-11-23 22:34:41
17#
不错 帮顶。。
回复 使用道具 举报
这个真得收藏
回复 使用道具 举报
liury 中级黑马 2015-11-23 23:11:47
19#
C语言和OC部分可以检测一下自己是否还记得
回复 使用道具 举报
Mr.Yan 中级黑马 2015-11-23 23:20:14
20#
涨芝士了!顶起~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马