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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Change.+ 中级黑马   /  2015-11-1 10:56  /  7944 人查看  /  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 个回复

正序浏览
海棠依旧2046 来自手机 中级黑马 2016-1-9 23:39:02
111#
顶起,谢谢分享
回复 使用道具 举报
谢谢大神分享
回复 使用道具 举报
顶起   收藏  留用
回复 使用道具 举报
先马漫漫看,谢谢分享!
回复 使用道具 举报
不错的分享,谢谢
回复 使用道具 举报
学习之路 来自手机 中级黑马 2015-12-27 22:29:12
106#
谢谢啦,来的很及时
回复 使用道具 举报
谢谢大神经验分享,学习了。
回复 使用道具 举报
娜_娜 来自手机 中级黑马 2015-12-26 12:55:32
104#
赞一个,总结的太棒了
回复 使用道具 举报
谢谢楼主分享
回复 使用道具 举报
很棒 支持一下
回复 使用道具 举报
打什么V5
回复 使用道具 举报
高端大气上档次!666666666666666666666
回复 使用道具 举报
木叶 中级黑马 2015-12-24 20:23:23
99#
很好,顶一个
回复 使用道具 举报
收藏了.............
回复 使用道具 举报
收藏了。
回复 使用道具 举报
littp 中级黑马 2015-12-24 00:41:30
96#
多谢 分享~ 保存下来  日后必有用处
回复 使用道具 举报
兄弟,这都是你面试的时候的题目吗?怎么我看有些好像视频里都没讲过的
回复 使用道具 举报
韦德460 来自手机 中级黑马 2015-12-23 23:30:59
94#
好东西!!!!
回复 使用道具 举报
这个不错!!!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马