1. KVC 与 KVO
全称是Key-value coding,翻译成键值编码。顾名思义,在某种程度上跟map的关系匪浅。它提供了一种使用字符串而不是访问器方法去访问一个对象实例变量的机制。
全称是Key-value observing,翻译成键值观察。提供了一种当其它对象属性被修改的时候能通知当前对象的机制。再MVC大行其道的Cocoa中,KVO机制很适合实现model和controller类之间的通讯。(推荐帖子:http://blog.csdn.net/wzzvictory/article/details/9674431)
2. MRC 与 ARC
Objective-c中提供了两种内存管理机制MRC(MannulReference Counting)和ARC(Automatic Reference Counting),分别提供对内存的手动和自动管理,来满足不同的需求。注意的是Xcode 4.1及其以前版本没有ARC,需要理解MRC,但实际使用时强推ARC。(可以看下:http://blog.csdn.net/fightingbull/article/details/8098133 入门理解一下)
3. RAC
简单的说,RAC就是一个第三方库,他可以大大简化你的代码过程。官方的说,ReactiveCocoa(其简称为RAC)是由GitHub开源的一个应用于iOS和OS X开发的新框架。RAC具有函数式编程和响应式编程的特性。(推荐脑补帖子:http://www.jianshu.com/p/ff79a5ae0353)
4. MVC 与 MVVM
Model-View-Controller是一个用来组织代码的权威范式。Apple甚至是这么说的。在MVC下,所有的对象被归类为一个model,一个view,或一个controller。Model持有数据,View显示与用户交互的界面,而View Controller调解Model和View之间的交互。
MVVM来自微软,不过不要坚持反对它。MVVM和MVC很像。它正式规范了视图和控制器紧耦合的性质,并引入新的组件。
在MVVM里,view和view controller正式联系在一起,我们把它们视为一个组件。视图view仍然不能直接引用模型model,当然controller也不能。相反,他们引用视图模型view model。
5. 类的成员变量应该如何定义?
推荐在
@implementation
中直接添加类的私有成员变量。(推荐唐巧的一篇帖子:http://blog.devtang.com/2015/03/15/ios-dev-controversy-1/)6. UI 界面的编写工作,用 xib/storyboard ,还是用纯代码?
个人见解,视情况而定,如果是产品早期,项目比较赶,人员不足的情况下,推荐使用xib/storyboard。xib/storyboard的好处不言而喻,可视化编程,减少代码量,开发速度快,苹果官方也是推荐我们使用。
对于一些布局复杂,但又相对静态的界面(即 没有太多交互),纯代码布局的话就是体力活了,这种情况 可以交给xib/storyboard(产品的需求是不断变化的,你刚代码布局好一个界面,正洋洋得意的时候,产品让UI重新给了一个布局,哭吧!)。
然而,有些程序员有代码洁癖,大部分都是用纯代码布局,他就不希望项目里面出现一个xib,所以就坚决不用xib/storyboard。还有一种普遍存在的错误的观点,就是认为纯代码项目 就是一种 高大上,一种能力的体现。然而,非也,如果让一个基础不是很牢,却自认为能力不错的选手,纯代码布局,写出了bug不要紧。我就想知道,谁愿意看那几百行一个函数,上千行一个类,谁愿意维护?当然这里只是指那些基础不是很好或是代码习惯不好的同学。说白了一句话,不管用什么看人,看项目,在写出一个满足项目需要,跟得上进度,容易维护的 基础上,选什么都可以。