iOS开发--object-c优势与补足

Objective-C 的优势

Objective-C 不仅提供了其他面向对象编程语言中的抽象概念和运行机制,而且还是一种非常灵活的语言,这种动态性就是 Objective-C 的最大优势所在。这种动态性可以让应用在运行中(即运行时)判断其该有的行为,而不是在编译构建时就固定下来。因此,Objective-C 把应用程序从编译时、连接时的限制中解放出来,并在用户掌握控制权时,更多依赖于运行时的符号解析。Objective-C 的动态性来自三个方面:

动态类型 可以让你的代码在运行时判断对象的类型。id 数据类型可以在运行时用任何数据类型来替换。所以,你可以让运行时因素来决定代码中用到的对象是什么类型。动态类型让你的应用更加灵活,这是静态类型做不到的,不过这会让数据的严格统一性降低。【注意:静态类性中的类都是固定种类的(比如 NSString *var),它有自身的优势,实际上用处比动态类型更广泛。打个比方,使用静态类型,编译器就可以完全分析你的代码。这让代码性能和可预知性更高。在其他面向对象编程语言中,动态类型有时被成为弱类型,静态类型被成为强类型。】

动态绑定 让你的代码在运行时判断需要调用什么方法,而不是编译时。就像动态类型把对象的类型放到运行时再去判断一样,动态绑定把选择调用哪种方法的任务放到了运行时去完成。和其他面向对象语言一样,方法调用和代码并没有在编译时就联结在一起,只有在消息发出时,它们才真正联结。 动态类型和动态绑定的存在使得选择哪个接收者以及调用哪个方法都可以在运行时来决定。用一个画图程序来打比方,它能够定义从父类继承而来的图形类应该怎样归类;你可以直接在某个对象上调用 draw 方法,无需知晓该对象的类以及它绘制自己的具体途径。

动态载入 可以让你的程序在运行时添加代码模块以及其他资源。有了动态载入特性,应用可以根据需要加载一系列可执行代码以及资源,而不是在启动时就加载所有组件。这能够大大提高性能。可执行代码中可以含有和程序运行时整合的新类。

MyClass *myObject1;  // 静态类型

id             myObject2;  // 动态类型

NSString *userName;  // 静态类型

声明方法‘-’声明类‘+’

声明方法后面带‘:’表示有参数

 Objective-C 的不足

凡是语言都有优劣,尺有所长寸有所短。objective-c的中缀符等语言,用习惯了你会喜欢上,但是初次学习,这些语法还有内存释放,会让初学者很头疼。

扬长避短,全面分析才能很好掌握。 

 

posted on 2012-07-20 15:55  coder狼  阅读(2889)  评论(0编辑  收藏  举报

导航