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

近期由于工作上的变动,也进行了新一轮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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值