iOS 面试题(九)

来源:互联网 发布:淘宝网店数据分析 编辑:程序博客网 时间:2024/05/01 19:58
  1. Objective-C有私有方法么?私有变量呢?如多没有的话,有没有什么代替的方法?
      OC中没有私有方法,有私有变量
      私有方法可以用category(类目)extension(延展)来代替


  2   #import、#include和@class有什么区别
       #include<>用于系统自带的头文件的引用,编译器会在系统文件目录下查找该文件
       #include“x.h”用户自定义的文件引用,编译器会首先在用户目录下查找,然后到安装目录中查找,最后在系统文件中查找
       在使用#include的时候要注意处理重复引用
       #import 大部分功能和#include是一样的,但是其自动处理重复引用问题
       @class 只要用于声明一个类,告知编译器它后面跟的是一个类的名字,而这个类的实现暂时不用知道。在后面的实现文件中#import这个类的时候,才包含这个被引用类的所有信息


  3  谈谈你对MVC的理解?为什么要用MVC?在Cocoa中MVC是怎么实现的?你还熟悉其他的OC设计模式或别的设计模式吗?
       MVC是Model(模型)View(视图)Controller(控制)MVC的目的就是实现系统职能的分工 。model为数据模型,处理数据。View用于视图展示。Controller进行UI展示和数据交互的逻辑控制 
      采用MVC可以实现页面代码和逻辑的分开,使层次清晰,职责分明,易于维护 
      Delegate模式 单例模式 KVC模式 消息通知模式  Target/Action模式(当某个事件发生时,调用那个对象中的对应的方法)


  4   如何监测系统键盘的弹出
       [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector() name:UIKeyboardWillShowNotification object:nil];
      
      (拓展题  )iOS弹出键盘挡住UITextView的解决方式
       调用-(void)textFieldDidBeginEditing:(UITextField *)textField方法 ,可以通过这个方法调整输入框的坐标,属性scrollEnable设为YES
       位置复原写在-(BOOL)textFieldShouldReturn:(UITextField *)sender;


 5   举出5个以上你所熟悉的iOS  SDK库有哪些和第三方库有哪些?

      本地通知   手势识别器UIGestureRecognizer   音视频技术AV Foundation   定位服务Map Kit框架   SQLite 
       ShareSDK   SDWebImage   FMDB  AFNetWorking  MJRefresh  Reachability
       
      
0 0
原创粉丝点击