IOS面试疑难杂症汇总
前言:
一. 本文内容来源分为3部分:1.作者面试亲身经历;2.作者工作中遇到的;3.网络
二. 本文会随着作者的经历不断更新
1. Java中的GC和Objective-c中的ARC有什么区别?
Java中的GC意思是垃圾回收,当内存吃紧时Java JVM自动处理程序中不用的对象,以释放内存
Objective-c中ARC的意思是自动引用计数,它的工作是干了以前非ARC模式下需要自己写的retian,release等。在程序编译的时候系统自动帮你去加这些东西,而不是说帮你释放那些对象
2. IOS中property中几个修饰符的含义:
nonatomic,无原子的,用在非多线程中,提高读写效率
atomic,原子的,系统默认的,用在多线程中,防止多线同时去读写,造成值不一致
readwrite,可写,系统默认的
readonly,只读,此属性不能被修改
retain,拷贝指针,原来内容改变,拷贝的内容改变,保持同步
copy,拷贝内容,原来内容改变,拷贝内容不变。但是NSArray只是拷贝了数据内容的指针
assign,用来修饰基本类型,例如int,float,BOOL等,系统默认
strong,IOS5+增加,相当于原来的retain,copy
weak,IOS5+增加,相当于原来的assign,两个对象之间循环引用的话用此修饰