当前位置:文档之家› iOS 面试题

iOS 面试题

iOS 面试题
1、在一个对象的方法里面:= @“object”;和name =@”object” 有什么不同吗?
答: =”object”:会调用对象的setName()方法;
name = “object”:会直接把object赋值给当前对象的name属性。

2、什么时候用delegate,什么时候用Notification? delegate 和notification 的区别
答: delegate针对one-to-one关系,用于sender接受到reciever的某个功能反馈值。

notification针对one-to-one/many/none,reciver,用于通知多个object某个事件。

区别
1). 二者都用于传递消息,不同之处主要在于一个是一对一的,另一个是一对多的。

2). notification通过维护一个array,实现一对多消息的转发。

3). delegate需要两者之间必须建立联系,不然没法调用代理的方法;notification不需要两者之间有联系。

3.浅拷贝和深拷贝的区别?
浅拷贝:只复制指向对象的指针,而不复制引用对象本身。

深拷贝:复制引用对象本身。

内存中存在了两份独立对象本身,当修改A时,A_copy不变。

4.进程和线程的区别?同步异步的区别?
进程:是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位.
线程:是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源.
同步:阻塞当前线程操作,不能开辟线程。

异步:不阻碍线程继续操作,可以开辟线程来执行任务。

编程题
30张不同的图片(image0-29)随机选出5张并且不得重复。

相关主题