ios 平时自己面试遇到的一些问题详情
记录一下平时看到过的面试题,后面遇到好的再添加
一属性的实质是什么属性默认的关键字都有哪些?atomic和nonatomic区别?@dynamic关键字和@synthesize关键字是用来做什么的?
1 @property = ivar + getter + setter;@property 系统会自动生成setter和getter方法;
2readwrite(读写),readonly(只读),assign(不会使引用计数加1),retain(引用计数加1)
copy,nonatomic(非原子性访问,多线程并发访问会提高性能),atomic(原子访问)
weak(相当于assign,可以把对应的指针变量置为nil)
3 atomic和nonatomic区别主要是在于系统生成的getter和setter方法不一样,nonatomic的速度要比atomic快
atomic会给线程增加一个安全锁,但是atomic并不能保证线程安全
4 dynamic和synthesize,前者不自动生成setter和getter由自己实现存取方法,后者编译期间会让编译器自动生成setter/getter方法,当 有自定义的存或取方法时,自定义会屏蔽自动生成该方法
二 NSString一般关键字使用copy还是strong?为什么?
三 可变集合类 和 不可变集合类的 copy 和 mutablecopy有什么区别?
四 进程和线程的区别?同步异步的区别?并行和并发的区别?
进程和线程的区别:一个程序至少有一个进程,一个进程至少有一个线程,进程是资源分配和拥有的单位,同一个进程内的线程共享进程资源。线程是处理器调度的基本单位。
并行和并发的区别:并发性:两个和两个以上的事件或活动在同一时间间隔内发生,并行性:是指两个和两个以上事件或活动在同一时刻发生
五 GCD的一些常用的函数
dispatch_async异步执行队列dispatch_sync 同步执行队列 dispatch_get_main_queue全局串行dispatch_get_global_queue并发
六 数据持久化(FMDB)
七说一下AppDelegate的几个方法?从后台到前台调用了哪些方法?第一次启动调用了哪些方法?从前台到后台调用了哪些方法?
八 NSCache优于NSDictionary的几点?
NSCache是一个容器,用于临时存储对象,NSCache中的key不用实现copy,存储的对象也不必实现NSCoding协议,程序退出后就被释放
九知不知道Designated Initializer?使用它的时候有什么需要注意的问题?
十 如何捕捉导航栏系统返回键的点击事件
- (BOOL)navigationBar:(UINavigationBar *)navigationBar shouldPushItem:(UINavigationItem *)item; // called to push. return NO not to.
十一 是否使用过在一个类里面定义多个类
十二 在cell的.m里面如何获取到cell所在的controller(通过UIResponder)
十三 对appdelegate的rootViewController进行过什么操作(比如替换)
十四 类别与延展
上一篇: 从数据库事务的角度谈谈分布式事务的演进
下一篇: ios开发swift Button解析