1.iOS define和const的区别
宏的用法:一般字符串抽成宏,代码抽成宏使用。
const用法:一般常用的字符串定义成const(对于常量字符串苹果推荐我们使用const)。
- 宏与const区别:
1 编译时刻不同,宏属于预编译 ,const属于编译时刻
2 宏能定义代码,const不能,多个宏对于编译会相对时间较长,影响开发效率,调试过慢,const只会编译一次,缩短编译时间。
3 宏不会检查错误,const会检查错误 - const修饰位置不同,代表什么?
1.const NSString * partVarial = @"汉斯哈哈哈";
2.NSString const * partVarial = @"汉斯哈哈哈";
3.NSString * const partVarial = @"汉斯哈哈哈";
1.const NSString * partVarial = @"汉斯哈哈哈";
"*partVarial"不能被修改, "partVarial"能被修改
2.NSString const * partVarial = @"汉斯哈哈哈";
"*partVarial"不能被修改, "partVarial"能被修改
3.NSString * const partVarial = @"汉斯哈哈哈";
"partVarial"不能被修改,"*partVarial"能被修改
- 结论:const右边的总不能被修改
所以一般我们定义一个常量又不想被修改应该这样:
NSString * const partVarial = @"汉斯哈哈哈";
转载:https://www.jianshu.com/p/87df639655fc
2.iOS RunLoop在项目中具体应用
1:创建常驻线程
2:优化定时器NSTimer
3:发现和消除卡顿
4:使用异常捕捉技术和RunLoop让APP一些一般的崩溃能够继续往下运行
转载:https://www.jianshu.com/p/69c8e3889c27
其他面试参考:
2020 iOS面试题及答案 最底部是阿里抖音的面试题
转载:https://www.jianshu.com/p/fc82a2dde5bf