iOS面试题纪录
最近打算换一份工作,参加了几次面试,但是由于自己之前没有过多的准备,另外水平也菜的一逼,所以并没有什么好机会,为了以后再被问到这些问题时不再吞吞吐吐,故特将这些碰到的问题纪录下来。以后如有面试,再继续补充完善
什么是继承,什么是重载,什么是重写
- 继承:指一个对象直接使用另一对象的属性和方法。继承可以使得子类具有父类的各种属性和方法,而不需要再次编写相同的代码。在令子类继承父类的同时,可以重新定义某些属性,并重写某些方法,即覆盖父类的原有属性和方法,使其获得与父类不同的功能。
- 重载:简单说,就是函数或者方法有同样的名称,但是参数列 表不相同的情形
- 重写:子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,而是想作一定的修改,这就需要采用方法的重写。方法重写又称方法覆盖。
简要说明发布iOS App到AppStore的流程
- 登陆itunesconnect并登陆Apple ID
- 选择“我的App”,并且新建App(左上角的“+”号)
- 选择“iOS”平台,并填入App 名称,语言,Bundle ID,SKU等信息
- 在App信息页面添加一个版本
- 填写App基本信息,如版本功能,根据尺寸上传App图片,并填写描述
- 使用xCode将App打包成一个ipa文件,并用Application Loader上传应用
- 在构建版本上选择需要上交的版本,填写其他信息,如果需要登陆,留下测试帐号
- 信息填写和图片上传完毕之后,点击“提交以供审核”。
进程与线程的区别
- 进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率
- 每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口
- 是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制
- 线程的划分尺度小于进程,使得多线程程序的并发性高
- 一个程序至少有一个进程,一个进程至少有一个线程
CoreData使用了什么方法将Entities中的属性对应到数据库中的每列
使用了Runtime和KVO技术
strong与weak的区别
strong和weak不同的是,当一个对象不再有strong类型的指针指向它的时候,它就会被释放,即使还有weak型指针指向它。如何手动实现KVO
参看手动实现kvo