面霸计划
一.面试题
1.Objective-C 有多重继承么?不是的话有什么替代方法。
2.@class的作用是什么?
3.Xcode项目的目录结构是怎么分组的?
4.简单介绍下在真机上调试开发证书申请流程.
5.Retain,copy,assign三个关键字的区别
6.按Home键时,怎么保存程序运行状态
7.当程序运行过程中,按下home键以后,ios程序会调用哪个代码。
8.怎么定义/实现一个协议
9.对于语句NSString *obj = [[NSData alloc] init]; obj在编译时运行时分别是什么类型。
10.在iPhone应用中如何保存数据
11.代理的作用
12.oc中可修改和不可以修改类型。
13.我们说的oc是动态运行时语言是什么意思?
14.通知和协议的不同之处
15.什么是推送消息
16.使用xcode创建工程时,支持同时创建的版本管理库是
17.使用codedata有哪种持久化存储机制
18.请描述一下UIViewController的生命周期
19.请描述ObjectC的内存管理机制以及一般原则?
20.如何判断一个对象是否属于某个类和ObjectC如何实现私有方法?
21.视图控制器之间的通信方式有哪些(如何传递变量)
22.浅复制和深复制的区别
23.类别的作用?继承和类别在实现中有何区别
24.类别和类扩展的区别
25.oc中的协议和java中的接口概念有何不同
26.什么是KVO和KVC
27.堆和栈的区别
28.定义属性时,什么情况使用nonatomic,atomic,copy,assign和retain
29.runloop是什么?在主线程中的某个函数里调用了异步函数,怎么样block当前线程,且还能相应当前线程的time事件和touch事件。
30.在一个对象的方法里面:self.name = "object";和 name = "object"; 有什么不同吗?
31.NSArray和NSSet有何区别
32.如何在object-c中,声明私有变量和私有方法
33. 开发过程中应用程序内存泄露了该怎么办
34.ios开发中有什么方式支持多继承
35. 数学题从1-20中有两个任意数 ,A知道2个数字的和,B知道两个数组的乘积,
A问B 你知道这个两个数字的吗? B说不知道
B问A 那你知道这两个数字吗 A说不知道
B说,哦,我知道了
A说,我也知道了
请问这两个数字是多少
37.
(牛牧)大公司面试题
1.SEL和@selector的含义和作用?
2.SEL是OC中的另一种消息传递机制。运行时调用特点,和多线程方面特点是什么?
3.performSelector方法的使用场景。在mainThread中,实现这个方法的作用。
4. NSOperation 和CGD不同点是什么,有什么好处,怎样区别使用?
5.OC中有没有类似其他面向对象语言异常捕获机制?如果有异常exception 怎么捕获?不同的CPU结构上开销怎样?C++中又什么类似的方法?
6.内存管理的几条原则时什么?按照默认法则.那些关键字生成的对象需要手动释放?在和property结合的时候怎样有效的避免内存泄露?
7.在一个对象释放前.如果他被加到了notificationCenter 中.不在notificationcenter中remove这个对象可能会出现什么问题?会不会有问题?
8.怎样实现一个 singleton的类.给出思路。
9.什么是序列化或者Acrchiving,可以用来做什么,怎样与copy结合,原理是什么?
10在iphone上有两件事情要做,请问是在一个线程里按顺序做效率高还是两个线程里做效率高?为什么?
11.你是否接触过OC中的反射机制?简单聊一下概念和使用。
12.账号登录验证以及账号加密保存?聊聊所用技术和实现逻辑。
13.三方支付、加密算法【AES、MD5、3DES+BASE64d等】的问题。
14.TCP,IP,UDP,socket网络方面的问题
15. ios4、5、6相对于之前的版本添加了哪些新特性?
16.一个tableView是否可以关联两个不同的数据源?你会怎么处理?
17.Object C中创建线程的方法是什么?如果在主线程中执行代码,方法是什么?如果想延时执行代码、方法又是什么?
18.ARC自动引用技术
19. 内存告警机制是什么?什么时候调用?举例说明(一般他会提示多控制器加载或跳转时候的情况)
20.聊聊GCD ,解决多核并行运算的一种方案。
二.笔记题
1.
{
int outA = 8;
int (^myPtr)(int) = ^(int a){return outA+a;};
outA = 5;
int result = myPtr(3);
}
result =
}
2.求引用计数
NSString *strTest = @"strTest";
NSString *stra = [NSString stringWithFormat:@"str.%@",strTest];
[strTest retainCount] =
[stra retainCount] =
3.标准头文件都有类似以下结构,主要作用是什么?
#ifndef _INCvxWorksh
#define _INCvxWorksh
#ifdef _cplusplus
extern "C" {
#endif
/*...*/
#ifdef _cplusplus
}
#endif
#endif /* _INCvxWorksh */
4.下列程序输出结果
main()
{
int a[5] = {1,2,3,4,5};
int *ptr = (int *)(&a+1);
printf(“%d,%d”,*(a+1),*(ptr -1));
}
5.此段代码有何作用
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtLndexPath(NSIndexPath *)indexPath
{
static NSString *CellDentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellDentifier];
if(cell == nil){
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellDentifier] autorelease];
}
// Configure the cell…
return cell;
}
6.请自己实现NSString * _namel;-(vold)setName:(NSString*)name方法
- (void)setName:(NSString *)name
{
}
7. 下面一段代码的区别:(都是主线程调用,如果有问题,请指出问题)
[self func( )];
[self performSelector:func( ) onMainThread:];
8. 从1-n个五序列的数字中排序的算法有哪些,简单代码实现一个并写出时间复杂度
9. 开启一个其他线程来计算1+1 并且把结果用主线程显示在label上更新UI
10.有一个6克和21克的砝码,怎样称量三次将420克的糖分成270克和150克
11. 一桌子人,每个人额头上都贴有标签,绿色和红色,绿色至少1个,大家都能看到别人头上的标签,看不到自己头上的标签,然后开始闭眼游戏,大家觉得自己头上是绿色标签就拍一下手掌,第一次闭眼没人拍掌,第二次,第三次也同样没有人拍掌,第四次有一个人拍掌了,请问绿色标签有几张?
大公司笔记题
1.ios平台怎么做数据的持久化?coredata和sqlite有无必然联系?coredata是一个关系型数据库吗?
属性列表、对象归档、NSUserDefault、SQLite3和Core Data
2.下面代码片段是否存在问题:(有问题请描述问题。无问题请写出输出结果)
NSString *tmpString = nil;
Int strLength = [tmpString length];
NSLog(@”%d”, strLength);
3.有一个刚刚创建的对象,把它们添加到一个可变数组中,如果释放这个对象,会发生什么?如果释放数组会发生什么?
4.viewDidUnload方法什么时候调用,作用是什么?如果内存告警情况下,你会在这个方法中做些什么事情?具体回答
5.viewDidAppear viewWillDisappear 是什么方法,作用。
6.这段代码有什么问题:
@implementation Person
- (void)setAge:(int)newAge {
self.age = newAge;
}
@end
7.什么是retain count?
8.以下每行代码执行后,person对象的retain count分别是多少
Person *person = [[Person alloc] init];
[person retain];
[person release];
[person release];
9.这段代码有什么问题,如何修改
for (int i = 0; i < someLargeNumber; i++)
{
NSString *string = @”Abc”;
string = [string lowercaseString];
string = [string stringByAppendingString:@"xyz"];
NSLog(@“%@”, string);
}
10.ViewController 的 loadView, viewDidLoad, viewDidUnload 分别是在什么时候调用的?在自定义ViewController的时候这几个函数里面应该做什么工作?
11. 这段代码有什么问题.?会不会造成内存泄露(多线程)?在内存紧张的设备上做大循环时自动释放池是写在循环内好还是循环外好?为什么?
for(int index = 0; index < 20; index ++){
NSString *tempStr = @”tempStr”;
NSLog(tempStr);
NSNumber *tempNumber = [NSNumber numberWithInt:2];
NSLog(tempNumber);
}
12.IOS消息传递机制都有什么?如何传递?
13.方法和选择器有何不同?
14.OBC中有无垃圾回收机制?
和ARC一样么?
15.一个视图控制器中嵌入两个tableview控制器?
16.Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?
17.nonatomic atomic 是什么?有什么异同?为什么创建变量时要用到这两个词修饰?他们跟多线程是否有关?为什么?
18.描述一下iOS SDK中如何实现MVC的开发模式。
19.Object-C有私有方法吗?私有变量呢?
20.自动释放池是什么,如何工作?
21.单件实例是什么?
三.算法题
1.检测两条链表是否想交,是则返回第一个交点,否则返回NULL。
node * detect_intersect_links
(node *first_link,node *second_link)
四.编程题
1.请写出“快速排序”或者描述实现过程原理
2.用NSLog函数输出一个浮点数,结果不四舍五入,并且保留一位小数?
3.用你熟悉的语言写一个方法判断20121229(阶乘)在十进制下是几位数?
4.现在要做一个汽车360的动画,应该如何做。