iOS面试题-第四页

31.写一个完整的代理,包括声明,实现.代理:遵守协议的对象.@class MyView;第一步:指定协议:(协议名:类名+Delegate)@protocol MyViewDelegate@required-(void)changeViewBackgroudColor:(MyView *)view;@optional-(void)test;@end @interface MyView : UIView第二步:指定代理@property (nonatomic,assign)iddelegate;

@end

第三步:代理遵循协议.

第四步:代理实现协议里面的必须实现的方法和其他可选方法.

第五步:委托方通知代理开始执行方法.

32.分析json.xml的区别,底层如何实现?

Json:键值对.数据小,不复杂.便于解析,有框架支持,适合轻量级传输.作为数据包个数传输的时候效率更高.

xml:标签套内容.xml数据两较大,比较复杂.适合大数据量的传输.xml有丰富的编码工具,比如:Dom4j,JDom.解析方式有两种,一是通过文芳模型解析,另外一种遍历节点.

33.ViewController的didReceiveMemoryWarning是在什么时候被调用的?

1.当应用程序的内存使用接近系统的最大内存使用时,应用会向系统发送内存警告,这时候系统会调用方法向所有ViewController发送内存警告.

2.打开系统相机.

3.加载高清图片.

默认操作:把里面没有用的对象进行释放.

34.面向对象的三大特征,简单介绍.

封装:代码模块化,方便以后调用.

继承:子类继承父类的所有方法和属性.

多态:父类指针指向子类对象.

35.重写一个NSString类型的,retain方式声明name属性的setter和getter方法.

属性的三大特性:语义特性,原子特性,读写特性.

同时重写setter和getter方法,@synchronized name = _name,关联属性和实例变量.

- (void)setName:(NSString *)name{

if(_name != name){

[_name retain];

[_name release];

_name = name;

}

}

- (NSString *)name{

return [[_name retain]autorelease];

}

36.简述NotificationCenter.KVC,KVO,Delegate?并说明它们之间的区别?

NotificationCenter:消息中心.消息通知.

KVC:利用键-值间接访问类中的某个属性.

[self setValue:@"123" forKeyPath:@"name"];

NSLog(@"%@",[self valueForKeyPath:@"name"]);

KVO:利用键-路径间接访问类中的某个属性,也就是观察者模式(KVO+通知中心).基于KVC和通知中心,观察的是实例变量.

Delegate:用于多个类之间的传值.

37.What is lazy loading?

懒加载

38.对MVC的理解,好处?

MVC:是一种架构.model:数据处理,view:视图显示,controller:逻辑控制,负责视图和模型之间的通信.

高类聚,低耦合,提高代码的复用性.

39.监测键盘的弹出.

通知.

[[NSNotificationCenter defaultCenter]addObserver:self  selector:@selector()  name:UIKeyboardWillShowNotification  object:nil];

40.  5个ios,sdk库和第三方库.

系统库:UIKit框架:负责应用程序的图形及事件驱动的关键基础,如:用户界面管理,图形和窗口支持.

Mapkit框架:地图.

Message UI框架:电子邮件

AV Foundation框架:可用于音频播放.

OpenAL框架:用于播放,可播放高质,高性能的网络音频

Core Data框架:将数据存储在SQLite数据库.

Core Media框架:播放视频.

第三方:SDWebImage :简化图片处理

ShareSDK    分享

SVProgressHUD  轻量级菊花

AFNetworkin  方便网络开发

FreeStreamer  播放音频

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • *面试心声:其实这些题本人都没怎么背,但是在上海 两周半 面了大约10家 收到差不多3个offer,总结起来就是把...
    Dove_iOS阅读 27,401评论 30 472
  • 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。• 深拷贝同浅拷贝的区别:浅拷...
    JonesCxy阅读 4,785评论 1 7
  • • 深拷贝同浅拷贝的区别:浅拷贝是指针拷贝,对一个对象进行浅拷贝,相当于对指向对象的指针进行复制,产生一个新的指向...
    WSGNSLog阅读 5,113评论 0 1
  • 1.Difference between shallow copy and deep copy? 浅复制和深复制的...
    用心在飞阅读 4,612评论 0 9
  • ruby打开浏览器查看API文档http://172.18.1.217:8214/ri --serve 进入命令行...
    风恋绝尘阅读 3,736评论 0 0

友情链接更多精彩内容