iOS面试题-第四页

作者: 像羽毛那样轻 | 来源:发表于2016-03-30 10:29 被阅读36次

    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  播放音频

    相关文章

      网友评论

        本文标题:iOS面试题-第四页

        本文链接:https://www.haomeiwen.com/subject/ihnslttx.html