iOS面试题汇总3

一.在iPhone应用中如何保存数据
1.通过web服务,保存在服务器上
2.通过NSCoder固化机制,将对象保存在文件中
3.通过SQlite或CoreData保存在文件数据库中

二.什么是coredata
coredata框架是apple提供的一套通用自动的解决方案,包括了对象生存周期,对象关系图,持久话化制

三.什么是NSManagedobjectContext
NSManagedbjectContext对象负责应用和数据库之间的交互。

四.coredata有哪几种持久话存储机制
1.XML(iOS系统不支持) 2. 自动存储 3.SQLite,4.内存存储

五.BOOL和bool的区别
OC中的BOOL值是一种对带符号的字符类型的类型定义,通过#define指令把YES定义为1,NO定位0;
1.类型不同:BOOL为int型,bool为布尔型
2.长度不同:bool只有一个字节,BOOL长度视实际环境来决定,一般可认为是4个字节
3.取值不同:bool取得是false和ture是0和1的区别,BOOL取得是FALSE和TURE是0和非0的区别。

六.请解释一下keywords的区别:assign vs weak,__block vs __weak
1.assign适用于基本数据类型,weak适用于NSObject对象,并且是一个弱引用。
assign可以用来修饰对象,但是assign修饰的对象在释放之后指针的地址为nil,如果在后续的内存分配中刚好分配到这块地址,系统就会奔扩。而weak修饰的对象在释放之后,指针地址会被置为nil。所以一般弱引用用weak.
2.__block是用来修饰一个变量,这个变量可以在block中被修改,
__block:使用__block修饰的变量会在block代码块中被retain(ARC,MVC下不会)
__weak:使用__weak修饰的变量不会在block代码块中被retain
同时在ARC下,要避免block出现循环引用__weak typedof(self)weakSelf = self

七.__block在ARC和非ARC下含义是一样的么
__block在ARC下捕获的变量会被block retain,这样会导致循环引用,所以必须要使用弱引用__weak才可以解决问题,在非ARC下,可以直接使用__block说明符修饰变量,因为在非ARC下,block不会被retain.

八.使用nonatomic一定是线程安全的吗?
不是,nonatomic的内存管理是非原子的,系统不会为setter方法加锁,非线程安全,适合内存较小的移动设备。
atomic原子操作,系统会为setter方法加锁,线程安全,需要消耗大量的系统资源来为属性加锁。
所以atomic是线程安全的,nonatomic是线程不安全的,如果只是单线程操作的话,用nonatomic最好。

九.+(void)load;和+(void)initialize有什么用处?
在OC中,runtime会自动调用每个类的两个方法。+load会在类初始加载时调用,+
initialize会在第一次调用类的方法或者实例方法之前被调用,这两个方法是可选的,且只有在实现了它们时才会被调用。共同点:两个方法都只会被调用一次。

十.为什么其他语言里叫函数调用, objective c里则是给对象发消息(或者谈下对runtime的理解)
其他语言如C,JAVA,C++中提到的函数调用或者方法调用,是在编译期九已经决定了会调用那个函数,编译器在编译期就能检查出函数的执行是否正确。
而OC是一门动态的语言,是尽可能将所有工作推迟到运行时才决定他是基于runtime来工作,runtime的核心就是消息发送。
runtime:所有消息都会在运行的时候才确定,[obj message]在运行时会被转化为objc_msgSend(id self,Sel cmd,...)来执行,它会在运行时从选择子表中寻找对应的选择子(@selectr)并将其于现实进行绑定。
runtime几乎可以修改OC中的一切:class property objec ticar method protocol。
主要应用1.内省 2.为分类动态添加属性 3.使用方法调剂修改原有方法实现

十一.UIView和CALayer有什么关系
每一个UIView都对应一个Core Animation框架中的CALayer,在iOS上处理UIView实际上就是在操作CALayer.UIView是对CALayer的轻量级的封装。UIView继承自UIResponder处理来自用户的事件,CALyer继承自NSObject主要用于图层的渲染和动画。

十二.如何高性能的给UIImageView加个圆角。
给UIImageView或者说 UIKit的控件天假圆角都是改变clipsToBounds和layer.cornerRadius会强制Core Animation提前渲染屏幕的离屏绘制,给性能带来负面影响,所以使用贝塞尔曲线。eg:
UIImageView * imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0,0,100,100)];
imageView.center = CGPointMake(200,300);
UIImage * anotherImage = [UIImage imageName:@"image"];
UIGraohicsBeginImageContextWithOptions(imageView.bounds.sie,NO,1.0);
[[UIBezierPath bezierPathWithRoundedRect:imageView.boundscornerRadius:50]addClip];
[anotherImage drawInRect:imageView.bounds];
imageView.image = UIGraphicsGetImageFromCurrentImageContext();
UIGraohicsEndImageContext();
[self.view addSubview:imageView];

十三.hettp的POST和GET方法有什么区别
GET类型的请求是幂等的,而POST请求是有副作用的,GET用于获取一些资源而POST

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

推荐阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,040评论 29 470
  • 1. 什么是 ARC? (ARC 是为了解决什么问题而诞生的?) ARC 是 Automatic Referenc...
    milk_powder阅读 634评论 0 5
  • iOS面试小贴士 ———————————————回答好下面的足够了------------------------...
    不言不爱阅读 1,878评论 0 7
  • 史上最全的iOS面试题及答案 iOS面试小贴士———————————————回答好下面的足够了----------...
    Style_伟阅读 2,318评论 0 35
  • u盘坏了,后知后觉的想起来里面有好多以前喜欢的歌。还有视屏。感觉很不舒服 从小一起长大的弟弟越来越生疏,见面居然除...
    纳兰云际阅读 217评论 0 0