1:MVC的理解

MVC设计模式考虑三种对象:数据模型对象,视图对象和控制器对象。

数据模型:负责存储、定义、操作数据;

视图:展示数据给用户,和用户进行操作交互;

控制器:M与V的协调者,控制获取数据,将数据交给视图去展示。

2:线程和进程

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,是系统进行资源分配和调度的一个独立单位;

线程是进程的一个实体,是CPU调度和分派的一个基本单位,是比进程更小的一个独立运行的基本单位,线程基本上不拥有系统资源,只拥有一点在运行中必不可少的基本资源(如程序计数器,一组寄存器和栈),一个线程可是创建和撤销另一个线程。

线程和进程的关系:

一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程;

资源分配给进程,统一进程中的多个线程可以共享进程中的线程;

线程在执行过程中,要实现协作同步。不同进程的线程间要利用消息通信的办法实现同步;

真正在处理机上运行的是线程;

线程是进程内的一个可执行单元,也是进程内的可调度实体。

线程和进程的区别:

调度:线程作为调度和分配的基本单元,进程作为拥有资源的基本单位;

并发性:不仅进程之间可以并发执行,同一个进程的多个线程之间也可以并发执行;

拥有资源:进程是拥有资源的一个基本单位,线程不拥有系统资源,但可以访问隶属于进程的资源;

系统开销:创建或者撤销进程的开销比较大。(因为系统在这个过程中要分配或者撤销系统资源)

3:进程的同步机制

原子操作、信号量机制、自旋锁、分布式系统等

4:进程死锁的原因

资源竞争以及程序推进顺序非法

5:死锁的四个必要条件

互斥、请求保持、不可剥夺、环路

6:死锁的处理策略

鸵鸟策略、预防策略、检测与接触死锁

7:KVC、KVO

KVC、键值编码,是一种间接访问实例变量的一种机制,该机制可以不通过存取方法(get setter)就可以访问对象的实例变量;

KVO、键值观察,是一种能使得对象获取到其他对象变化的通知机制;

实现KVO键值观察模式,被观察的对象必须使用KVC的键值编码机制来修改它的实例变量,这样才能被观察者观察到。因此,KVC是KVO的基础,或者说KVO的实现是建立在KVC的基础之上。

8:深复制和浅复制

深复制:不仅复制对象本身,也要复制对象所持有的属性;

浅复制:只复制对象本身,而不对其属性进行复制。

9:定义属性的时候,什么时候用assign、retain、copy、nonatomic?

assign:普通赋值,一般用于基本数据类型,常见委托设计模式,以此来防止循环引用;

retain:保留计数,获得了对象的所有权。引用计数在原有基础上+1;

copy:一般在字符串中使用copy。Foundation中不可变对象使用copy效果相当于retain,只是引用计数+1;

nonatomic:非原子性访问,不加同步,多线程并发访问会提高性能。

10:strong与weak,_unsafe_unretained与weak的区别。

strong是强引用,weak是弱引用,在ARC中,strong相当于retain,weak相当于assign,要注意的一点是,即使在ARC情况下,代理的属性依然使用assign,以防止循环引用;

_unsafe_unretained与weak功能一致,区别在于当志向的对象销毁后,weak的指针将变为nil,防止出现野指针。

11:ARC存在内存泄露吗?

循环引用会导致内存泄露,Object-C与CoreCoundation进行桥接的时候如果管理不当也会造成内存泄露。

12:事件响应者链

响应者链表示一系列的响应者对象。事件被交给第一个响应者处理,如果第一响应者不处理,事件被沿着响应者链向上传递,交给下一个响应者(next responder),

View-ViewController-Window-Application-丢弃事件

13:SVN或者是git的使用

14:打包静态库

15:App发布的上架流程

16:Storyboard的使用

中级iOS开发面试题的更多相关文章

  1. 100个iOS开发面试题汇总-王刚韧的技术博客

    100个iOS开发面试题汇总 关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的 ...

  2. 100个iOS开发面试题汇总

    100个iOS开发面试题汇总 关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的 ...

  3. iOS开发面试题(中级)

    //想面试的童鞋们来看看自己会多少, 老鸟可以无视直接绕过...1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么?与Ex ...

  4. iOS开发面试题整理

    前言 本文借鉴整理了iOS高级开发常见的面试题,并且分博客一一分析,希望能和大家一起进步学习. 欢迎大家关注我的 Github

  5. 【面试】iOS 开发面试题(二)

    1. 我们说的oc是动态执行时语言是什么意思? 答案:多态. 主要是将数据类型的确定由编译时,推迟到了执行时. 这个问题事实上浅涉及到两个概念.执行时和多态. 简单来说.执行时机制使我们直到执行时才去 ...

  6. 百度ios 开发面试题

    百度移动云可穿戴部门的面试经历,面试官都非常热情友好,一上来到弄的我挺不好意思的.下面记录一下自己的面试过程,因为我真的没啥面试经验,需要总结下. 1面 Objective C runtime lib ...

  7. iOS开发面试题整理 (三)

    1. 风格纠错题 修改完的代码: typedef NS_ENUM(NSInteger, CYLSex) { CYLSexMan, CYLSexWoman }; @interface CYLUser : ...

  8. 【面试】iOS 开发面试题(一)

      1. #import 跟#include 又什么差别,@class呢, #import<> 跟 #import""又什么差别? 答:#import是Objectiv ...

  9. iOS开发面试题整理(二)

    8 类别的作用?继承和类别在实现中有何区别? 答案:category 可以在不获悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改. 并且如果类别和原来类中的方法产生名称冲突,则类别 ...

随机推荐

  1. 聚类算法:ISODATA算法

    1. 与K-均值算法的比较 –K-均值算法通常适合于分类数目已知的聚类,而ISODATA算法则更加灵活: –从算法角度看, ISODATA算法与K-均值算法相似,聚类中心都是通过样本均值的迭代运算来决 ...

  2. Xcode中的几个常用文件路径

    在iOS开发中有时候需要知道一些文件的路径,这里总结如下: 路径查找第一步如图: 1.模拟器的路径:/Applications/Xcode.app/Contents/Developer/Platfor ...

  3. java json 的生成和解析 --json-lib

    类(java json的解析和生成): import java.util.HashMap; import java.util.Map; import net.sf.json.JSONArray; im ...

  4. noip知识点总结之--贪心

    一.什么是贪心 贪心算法嘛... 就是在对某个问题求解时,总是做出在当前看来是最好的选择 In other wors,并不是从整体最优上加以考虑,而是在获得某种意义上的局部最优解 二.贪心算法的适用前 ...

  5. mac 找文件

    如何找到 etc 方法1: ! D# D! s2 F" f 七度苹果电脑软件1.打开Finder,按快键盘 Command + Shift + G,即可调出 前往文件夹 ,也可以左上角 找到 ...

  6. netbios wins dns LLMNR

    NetBIOS名称 Network Basic Input/Output System  (RFC-1001,1002)网络基本输入/输出系统协议 NetBIOS是一种高级网络接口,最初是在硬件中实 ...

  7. Linux的五个查找命令(find、locate、whereis、which、type)

    1. find find是最常见和最强大的查找命令,你可以用它找到任何你想找的文件. find的使用格式如下: $ find <指定目录> <指定条件> <指定动作> ...

  8. POJ 1979 Red and Black dfs 难度:0

    http://poj.org/problem?id=1979 #include <cstdio> #include <cstring> using namespace std; ...

  9. 二模 (1) day2

    第一题: 题目大意: N层楼,K个人,M个箱子在1楼,给出K个人的初始状态(在第几楼,正在向上走还是向下走,向上走的人手里已经有箱子),每次移动一层楼,求把所有箱子(手里拿着的不算在M里)全部搬到顶楼 ...

  10. [开发笔记]-使用jquery获取url及url参数的方法

    使用jquery获取url以及使用jquery获取url参数是我们经常要用到的操作 1.jquery获取url很简单,代码如下: window.location.href; 其实只是用到了javasc ...