- 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