iOS 面试题集-03

1、C语言中static变量和static函数有什么用:

1>、表示变量是静态存储变量,表示变量存放在静态存储区。
2>、加在函数面前的时候表示该函数是内部连接,只在文件中有效,别的文件中不能应用该函数。

2、c和obj-c如何混编?c++和obj-c如何混编:

1>、实现文件的扩展名.m改成.mm。
2>、cpp文件必须只能用c/c++代码,而且cpp文件include的头文件中,也不能出现obj-c代码,因为cpp文件只能写c++代码。

3、oc中有私有方法、私有变量吗:

1>、使用private修饰的全局变量是私有变量。
2>、obc-c在语法上没有设计私有方法,不过可以通过延展在实现文件里定义方法作为私有方法。

4、oc是如何管理内存:

1>OC语言是通过使用引用计数来管理一个对象的生命周期,当对象被使用的时候引用计数加1,不使用时减1。当此对象引用计数为0时,则对象被系统回收。

5、简述代理(delegate):

1>delegate 又称“委托或代理”,是一种设计模式。Delegate主要用于两个对象之间的通信交互,并且解除两个通信对象的耦合性,iOS中大量使用代理设计,主要用于视图与使用对象之间的通信的交互。

6、简述block与函数之间的区别以及block的优缺点:

1>、block类似与C中的函数指针,都可以作为参数用来传递,用于回调。但是block的实现可以定义方法中,函数不可以。
2>、block语法更为简洁,可以在方法中定义实现,这样可以访问方法中的局部变量,使代码更加紧凑、结构化。

7、static全局变量与普通全局变量的区别?static局部变量与普通局部变量的区别?static函数与普通函数的区别:

1>、static全局变量只初始化一次、防止其他文件单元中被引用。
2>、static局部变量只被初始化一次,下次依据上一次结果值。
3>、static函数在内存中只有一份,普通函数在每个调用中维持一份拷贝。

8、简述类目与延展的定义:

1>、类目:为已知类增加新的方法。
2>、延展:通知在本类的定义里使用类目来声明私有方法。

9、OC中的协议和Java中的接口区别:

1>OC协议中方法可以设置为可选实现、必须实现。Java中的接口必须全部实现。

10、简述GCD:

1>GCD是Apple开发的一个多核编程的较新的解决方法。在Mac OS X10.6 雪豹中首次推出,并最近引入到iOS 4.0。GCD是一个代替诸如NSThread等技术的很高效和强大的技术。GCD完全可以处理诸如数据锁定和资源泄漏等复杂的异步编程问题。

猜你喜欢

转载自blog.csdn.net/weixin_33729196/article/details/90919780