面试题整理

1.http和scoket通信的区别

2.mvc设计模式是什么?你还熟悉什么设计模式?
3.fmdb框架(了解一下)
4.什么是沙盒模型?哪些操作是属于私有api范畴?
5.什么时候用delegate,什么时候用Notification?
6.写一个委托的interface
8.obj-c有多重载么?不是的话有什么代替方法?
9.关键字const有什么含义?修饰类呢?static的作用,用于类呢?还有extenrn c的作用
10.ARC和垃圾回收机制的区别
11.指出一下程序存在的问题,并且修正

    NSMutableArray *array1 = [NSMutableArray arrayWithArray:@[@"1",@"2",@"3"]];
    NSMutableArray *array2 = [array1 copy];
    [array2 addObject:@"4"];

12.NSString的属性使用的是strong 还是copy,为什么?
13.如果解决循环引用
14.tableView的重用机制
答:查看UITableView头文件,会找到NSMutableArray *visiableCells和NSMutableArray *reusableTableCells两个结构,visableCells内保存当前显示的cells,reusableCells保存可重用的cells,TableView显示之初,reusableTableCells为空那么tableView dequeueReusableCellWithIdentifier:CellIdentifier返回nil,开始的cell都是通过[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault reuseIdentifier:Celldentifier]来创建,而且cellForRowAtIndexPath只是调用最大显示的cell的次数。比如:有100天数据,iPhone一屏最多显示10cell。程序最开始显示TableView的情况是:

  • 用[[UITableVIewCell alloc]initWithStyle:UITableViewCellsStyleDefault reuseIdentifier:CellIdentifier]创建10次cell,并给cell指定同样的重用标识符(当然,可以为不同类型的cell指定不同的标识)。并且10个cell全部都加入到visiableCells数组,reusableTableCells为空。
  • 向下拖动tableView,当cell1完全移出屏幕,并且cell11(它也是alloc出来的,原因同上)完全显示出来的时候。cell11加入到visiableCells,cell1移出visiableCells,cell1加入到reusableIeTableCells。
  • 接着向下拖动tableView,因为reusableTableCells中已经有值,所以,当需要显示新的cell,cellForRowAtIndexPath再次被调用的时候,tableView dequeueReusableCellWithIdentifier:CellIdentifier,返回cell1,cell1加入到visiableCells,cell1移出reusableTableCells;cell2移出visiableCells,cell2加入到reusableTableCells。之后再需要显示的Cells就可以正常从用了。
    15.frame和bounds的区别
    16.多线程的几种方案
    17.- (void)willMoveToWindow:(UIWindow *)newWindow 这个方法什么时候调用
    18.NSNotification和delegate的区别
    19.指出一下程序是否有问题,如果有问题请修正
for (int i = 0; i < 10000000; i++) {
        UIImage *image = [UIImage imageWithContentsOfFile:[[NSBundle mainBundle] pathForResource:[NSString stringWithFormat:@"%d",i] ofType:@".png"]];
        //执行某些方法
    }

20.category和extension有什么区别
21.讲讲Objective-C的内存管理
22.请阐述UIVIewController生命周期相关的方法和执行顺序
23.在一个webView上输入http://www.baidu.com到最终打开页面,请描述中间经历的过程
24.阐述视图控制器的生命周期
25.UIView与CLayer有什么区别(2)
26.iOS怎么做数据的持久化
27.描述你所理解的RunLoop
30.简要描述GCD,NSOperation,NSTread
- NSOperation 与GCD的区别
1).GCD
- a.GCD是ios4.0推出的,主要针对多核cpu多核做了优化,是C语言的技术
- b.GCD是将任务(block)添加到队列(串行、并行、全局、主队列)。并且以同步/异步的方式,执行任务的函数
- c.GCD提供了一些NSOperation不具备的功能
1.一次性执行
2.延迟执行
3.调度组
2)NSOperation
- a.NSOperation是iOS2.0推出的,iOS4.0之后重写了NSOperation
- b.NSOperation将操作(异步的任务)添加到队列(并发队列),就会执行指定操作的函数
- c.NSOperation里提供的方便的操作
1.最大并发数
2.队列的暂停/继续
3.取消所有操作
4.指定操作之间的依赖关系(GCD可以用同步实现)
3)GCD与NSThread的区别
- a.NSThread通过@selector指定要执行的方法,代码分散
- c.GCD通过block指定要执行的代码,代码集中,所有的代码系在一起的,让代码更加简单,易于阅读和维护
- d.使用GCD不需要管理线程的创建/销毁/复用的工程!程序员不用关心线程的生命周期
- e.如果要开多个线程NSThread必须实例化多个线程对象
- f.NSThread靠NSObject的分类方法实现的线程间通讯,GCD靠block;
31.BAD_ACCESS在什么情况下出现?,怎么调试EXC_BAD_ACCESS错误?
32.请描述你所了解的设计模式,举例并描述使用场景
33.不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如子一个vc的viewDidLoad中创建)
34.分别描述Swift和OC中访问限制有哪些
35.描述KVC和KVO
36.分别描述类别(categories)和延展(extensions)是什么?以及两者的区别?继承和类别在实现中有和区别?为什么Category只能为对象添加方法,却不能添加成员变量
37.举例编程,这里有一个整数数据int a[13] = {1,5,10,13,17,56,12,67,23,65,77,81,93};
1.使用递归好冒泡法进行由大到小排序
2.请使用二分法查找数据77
38.什么是method swizzling?
39.如何提高性能的给UIImageView加个圆角?
40.GCD里面有哪几种Queue?,你自动建立过串行queue吗?背后的线程模型是什么样的?
41.What is advantage of categories? What is difference between implementing a category and inheritance?
42.在网络差的情况下,特定的一个网络请求可能会耗时2-4秒,此时怎么做提高用户体验
43.在App中混合HTML5开发App如何实现的,在App中使用HTML5的优缺点是什么?
44.描述一下iOS的内存管理,在开发中对于内存的使用和优化包含哪些方面。我们在开发中应注意哪些问题
45.用预处理指令#define声明一个常数,用以表明1年中有多少秒(忽略闰年问题)
46.写一“标准”宏MIN ,这个宏输入两个参数并返回较小的一个
47.数组和指针的区别
48.static的作用
49.简述内存分区情况
50.#include<filename>和#include “filename” 有什么区别
51.const char *p ;charconst *p;char *const p;c..四个修饰指针有什么区别
52.简述NotificationCenter,KVC,KVO,Delegate?并说明他们之间的区别
53.iOS本地数据存储都有哪几种方式?
54.写出方法获取iOS内存使用情况
55.请简单写出增,删,改,查的SQL语句
56.分析json,xml的区别?json,xml解析方式的底层是如何处理的
57.多线程,如GCD,NSOperationQueue的特征和区别
58.socket连接与http连接
59.单例目的是什么,并简单写出一个案例?
60.请解释一下keywords的区别:assign weak,__block vs __weak
61.用@property声明的NSString(或者NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
62.对数组中的元素去重复
例如
NSArray *array= @[@"12-11",@"12-11",@"12-11",@"12-12",@"12-13",@"12-14"];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容