OC 和 Swift 问题 (随时补充)

2019-01-02  本文已影响5人  一欧Yiou

问: 关键字static的作用是什么?


问: 关键字const是什么含义? 分别解释下列语句中const的作用?

const int a;
int const a;
const int *a;
int * const a;
int const * a const;

含义

作用

const int a;            //a是一个常整型数
int const a;            //a是一个常整型数
const int *a;           //a是一个指向常整型数的指针(也就是,整型数是不可修改的,但指针可以)
int * const a;          //a是一个指向整型数的常指针(也就是说,指针指向的整型数是可以修改的,但指针是不可修改的)
int const * a const;    //a是一个指向常整型数的常指针(也就是说,指针指向的整型数是不可修改的,同时指针也是不可修改的)

问: 使用nonatomic一定是线程安全的吗?


问: 对于语句NSString *obj = [[NSData alloc] init]; ,编译时和运行时obj分别是什么类型?


问: Objective-C如何对内存管理的,说说你的看法和解决方法?

注意:不管是MRC还是ARC都是在编译时完成的


问: iOS数据持久化有哪些?

为何要持久化:iOS 开发可以没有持久化,持久化更多的是业务需求;比如记录用户是否登陆,下次进应用不需要再登陆。
因为 iOS沙盒机制,所以持久化分为两类:沙盒内沙盒外


问: id和NSObject*的区别?


问: strong 和 weak 的区别?


问: (堆和栈) 哪些数据是放在堆上的,哪些是放在栈上的?


问: UITableView 优化?


问: 消息列表页面如何优化?

首先我们发消息时候观察一下消息列表的特性,当发送一条消息时候,消息的数量会变化,列表会出现在最上边的位置,列表内的内容会发生变化。从消息列表的特性,我们就可以分析出要优化的点了。通过这些点,我们做了一些优化:


问: 聊天界面如何优化?

聊天界面的优化算是比较繁琐的了,但是优化点跟回话列表的优化差不多。上边提到回话列表里最耗时的tableview的高度是固定的,而聊天界面的几乎每条消息的高度都可能不一样,所以我们在优化聊天界面时候最重要的一点就是计算tableviewcell的高度。而我们在计算tableview的高度是怎么做的呢?

主要有两个准则:
(1) 第一个是能在后台线程执行的都放在后台线程里。
(2) 第二个计算高度要放在显示之前。


问: Swift的可选类型?


问: Swift 中 Struct 和 Class的区别 ?


Swift 用 Struct 作为数据模型时需要注意什么问题?

优点:
缺点: (需要注意的地方)
总结:如果模型较小,并且无需继承、无需储存到 NSUserDefault 或者无需 Objective-C 使用时,建议使用 Struct

上一篇 下一篇

猜你喜欢

热点阅读