iOS BAT 高频面试题及详细答案(实战版).docxVIP

  • 1
  • 0
  • 约5.52千字
  • 约 9页
  • 2026-10-12 发布于河北
  • 举报

iOS BAT 高频面试题及详细答案(实战版).docx

iOSBAT高频面试题及详细答案(实战版)

一、Objective-C基础核心

1.详细讲解OC的属性关键字assign、weak、strong、copy的区别及使用场景

答案:

strong(强引用)

是默认的对象引用方式,会持有对象,让对象计数器+1,只要有强引用指向对象,对象就不会被释放。

使用场景:所有OC对象类型,比如NSString、UIView、自定义Model等。

weak(弱引用)

不会持有对象,计数器不变化,对象销毁后,指针会自动置nil,不会产生野指针。核心作用是解决循环引用。

使用场景:代理、block外部引用、控件弱引用、避免父子对象循环引用。

assign(赋值引用)

直接赋值指针地址,不做计数管理,对象销毁后指针会变成野指针,不会自动置空。专门用于基本数据类型。

使用场景:int、float、double、BOOL等基本数据类型,以及枚举、结构体。

copy(拷贝)

会拷贝对象内容,生成新内存地址的对象,原对象修改不影响新对象。分为浅拷贝和深拷贝,OC中不可变对象copy是浅拷贝,可变对象copy是深拷贝。

使用场景:NSString、NSArray、NSDictionary这类不可变集合,防止外部可变对象修改导致数据异常。

避坑总结:NSString必须用copy,不用strong;代理必须用we

文档评论(0)

1亿VIP精品文档

相关文档