当前位置: 移动技术网 > 移动技术>移动开发>IOS > ios 平时自己面试遇到的一些问题详情

ios 平时自己面试遇到的一些问题详情

2018年03月07日  | 移动技术网移动技术  | 我要评论

记录一下平时看到过的面试题,后面遇到好的再添加

属性的实质是什么属性默认的关键字都有哪些?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进行过什么操作(比如替换)

十四 类别与延展

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网