iOS高阶面试题之某某音乐的面试题

来源:互联网 发布:淘宝卖家常用app 编辑:程序博客网 时间:2024/06/18 06:11

近期由于工作上的变动,也进行了新一轮iOS的面试。之前面试过很多家企业,一直没有时间总结一把,今天把面试中遇到的一些经典题目列出来,答案则会稍后补充,以供大家学习:

1、ARC中weak和assign区别,分别用在什么场景,weak的实现原理是什么?

weak 用来修饰弱引用的属性,在ARC环境下,所有指向这个对象的weak指针都将被置为nil。

asssign 相于于指针赋值,不对引用计数进行操作,注意原对象不用了,一定要把这个设置为nil;简单赋值,对基础数据类型 (例如NSInteger,CGFloat)和C数据类型(int, float, double, char, 等) 适用简单数据类型。

2、GB2312,UTF-8,UTF-16,Unicode的区别和联系,NSString内部存储用的什么编码,为什么选择这种编码?

3、NSSet和std::map中的key是以什么数据结构存储的?设计理由是什么?为什么没有NSStack,NSQueue这两种容器?

4、一台IPV4的电脑能直接和一台IPV6的电脑通过IP协议直接通信么?

5、写一段用GET方式请求地址为 http://qq.com/1.mp3的文件的第一个字节数据的Request Message 内容,内容从字母GET开始,包含一系列的Request field。

6、函数void dispatch_async(dispatch_queue_t queue,dispatch_block_t block)中第一个参数函数queue是什么意思,和线程优先级有什么关系?

7、编译器是如何做到让block块内的代码访问到block块外的变量的,如果修改block外的变量,给变量增加__block前缀的意义是什么?

8、实现字符串比较函数,如果两个指针指向的字符串内容一样,返回ture

bool strcmp(const char*psz1,const char *psz2)

9、实现一个OC类,这个类中可以保存Int类型的数据,要求实现如下接口:可以向类中pop一个Int型数据,数据按照pop的时间顺序存储;可以从类中push出一个Int型数据,每次push出的数据都是最新时间插入的数据;可以从类中获取最大的那个Int型数据。要求实现时间复杂度O(1)

0 0
原创粉丝点击