聚美优品IOS开发工程师面试(第一面)-2015年

面试问答题

1、  类扩展与分类的区别?

2、  id 声明的对象有什么特性?

3、  原子(atomic)跟非原子(non-atomic)属性有什么区别?

4、  代理的作用?

5、  什么是推送消息?

参考答案

1、分类的小括号中必须有名字

@interface 类名(分类名字)
/*方法声明*/
@end
@implementation类名(分类名字)
/*方法实现*/
@end

•       分类只能扩充方法,不能扩展属性和成员变量(如果包含成员变量会直接报错)。

•       如果分类中声明了一个属性,那么分类只会生成这个属性的set、get方法声明,也就是不会有实现。

2、Id 声明的对象具有运行时的特性,即可以指向任意类型的objcetive-c的对象;

3、1). atomic提供多线程安全。是防止在写未完成的时候被另外一个线程读取,造成数据错误

2). non-atomic:在自己管理内存的环境中,解析的访问器保留并自动释放返回的值,如果指定了 nonatomic ,那么访问器只是简单地返回这个值。

4、代理的目的是改变或传递控制链。允许一个类在某些特定时刻通知到其他类,而不需要获取到那些类的指针。可以减少框架复杂度。

另外一点,代理可以理解为java中的回调监听机制的一种类似。

5、推送通知更是一种技术。简单点就是客户端获取资源的一种手段。

普通情况下,都是客户端主动的pull。推送则是服务器端主动push。

个人资料
游弋的蔷薇
等级:7
文章:27篇
访问:3.8w
排名: 10
上一篇: 阿里巴巴java研发工程师面试题-2016年
下一篇:聚美优品IOS开发工程师面试(技术总监面)-2015年
猜你感兴趣的圈子:
聚美优品笔试面试圈
标签: atomic、分类、声明、推送、代理、面试题
隐藏