欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

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

程序员文章站 2022-04-12 20:15:04
记录一下平时看到过的面试题,后面遇到好的再添加 一属性的实质是什么属性默认的关键字都有哪些?atomic和nonatomic区别?@dynamic关键字和@synthesiz...

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

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

十四 类别与延展