iOS checklist

2019-01-07  本文已影响0人  斯特莫

[※]@property中有哪些属性关键字?
[※]weak属性需要在dealloc中置nil么?
[※※]@synthesize和@dynamic分别有什么作用?
[※※※]ARC下,不显式指定任何属性关键字时,默认的关键字都有哪些?
[※※※]用@property声明的NSString(或NSArray,NSDictionary)经常使用copy关键字,为什么?如果改用strong关键字,可能造成什么问题?
[※※※]@synthesize合成实例变量的规则是什么?假如property名为foo,存在一个名为_foo的实例变量,那么还会自动合成新变量么?
[※※※※※]在有了自动合成属性实例变量之后,@synthesize还有哪些使用场景?

[※※]objc中向一个nil对象发送消息将会发生什么?
[※※※]objc中向一个对象发送消息[obj foo]和objc_msgSend()函数之间有什么关系?
[※※※]什么时候会报unrecognized selector的异常?
[※※※※]一个objc对象如何进行内存布局?(考虑有父类的情况)
[※※※※]一个objc对象的isa的指针指向什么?有什么作用?
[※※※※]下面的代码输出什么?

@implementation Son : Father

[※※※]runloop和线程有什么关系?
[※※※]runloop的mode作用是什么?
[※※※※]以+ scheduledTimerWithTimeInterval...的方式触发的timer,在滑动页面上的列表时,timer会暂定回调,为什么?如何解决?
[※※※※※]猜想runloop内部是如何实现的?

[※]objc使用什么机制管理对象内存?
[※※※※]ARC通过什么方式帮助开发者管理内存?
[※※※※]不手动指定autoreleasepool的前提下,一个autorealese对象在什么时刻释放?(比如在一个vc的viewDidLoad中创建)
[※※※※]BAD_ACCESS在什么情况下出现?
[※※※※※]苹果是如何实现autoreleasepool的?

[※※]使用block时什么情况会发生引用循环,如何解决?
[※※]在block内如何修改block外部变量?
[※※※]使用系统的某些block api(如UIView的block版本写动画时),是否也考虑引用循环问题?

[※※]GCD的队列(dispatch_queue_t)分哪两种类型?
[※※※※]如何用GCD同步若干个异步调用?(如根据若干个url异步加载多张图片,然后在都下载完成后合成一张整图)
[※※※※]dispatch_barrier_async的作用是什么?
[※※※※※]苹果为什么要废弃dispatch_get_current_queue?
[※※※※※]以下代码运行结果如何?

[※※]IBOutlet连出来的视图属性为什么可以被设置成weak?
[※※※※※]IB中User Defined Runtime Attributes如何使用?

[※※※]如何调试BAD_ACCESS错误
[※※※]lldb(gdb)常用的调试命令?

上一篇 下一篇

猜你喜欢

热点阅读