0基础学员成为iOS开发企业软件工程师学习基础Objective-C语言

2016-04-01 11:53:01 505浏览

        移动端已经超越PC端成为了主导互联网发展态势的风向标,而作为移动终端市场的风头苹果系统iOS也从幕后走到台前,扣丁学堂作为北京千锋互联科技有限公司旗下的在线教育平台,通过线上线下相结合的形式,全方位的服务学员。扣丁学堂ios开发Objective—C教程由业内顶级iOS讲师历时多年精心制作,能够让0基础学员迅速成为iOS开发高级软件开发工程师,其中包括对象归档 Selector等。


        Objective-C通过一套全新语法,在c语言基础上添加了面向对象特性。Objective-C的语法中频繁使用方括号,而且不吝于写出极长的方法名,这通常令许多人觉得此语言较为冗长。其实这样写出来的代码十分易读,只是c++或Java程序员不太能适应。

        0bjective-C语言学起来很快,但有很多微妙细节需注意,而且还有许多容易为人所忽视的特性。另一方面,有些iOS开发者并未完全理解或是容易滥用某些特性,导致写出来的iOS应用项目源码难于维护且不易调试。

        Objective-C与c++、Java等面向对象语言类似,不过很多方面有所差别。若是用过另一种面向对象语言,那么就能理解Objective-C所用的许多范式与模板了。然而语法上也许会显得陌生,因为该语言使用“消息结构”(messaging structure)而非“函数调用”(functioncalling)。Objective-C语言由Smalltalk@演化而来,后者是消息型语言的鼻祖。消息与函数调用之间的区别看上去就像这样:

        |l Messaging(Objective—C、

        Object’obj=[Object new];

        [obj performWith:parameterl and:parameter2];

        /1 Function calling(c++)

        Object+obj=new Object;

        obj一>perform(parameterl,parameter2);

        关键区别在于:使用消息结构的语言,其运行时所应执行的代码由运行环境来决定;而使用函数调用的语言,则由编译器决定。如果范例代码中调用的函数是多态的,那么在运行时就要按照“虚方法表”(virtual table)e来查出到底应该执行哪个函数实现。而采用消息结构的语言,不论是否多态,总是在运行时才会去查找所要执行的方法。实际上,编译器甚至不关心接收消息的对象是何种类型。接收消息的对象问题也要在运行时处理,其过程叫做“动态绑定”(dynamic binding)。

        Objective—C的重要工作都由“运行期组件”(runtime component)而非编译器来完成。使用Objective—C的面向对象特性所需的全部数据结构及函数都在运行期组件里面。举例来说,运行期组件中含有全部内存管理方法。运行期组件本质上就是一种与开发者所编代码相链接的“动态库”(dynamic library),其代码能把开发者编写的所有程序粘合起来。这样的话,只需更新运行期组件,即可提升应用程序性能。而那种许多工作都在“编译期”(compile time)完成的语言,若想获得类似的性能提升,则要重新编译应用程序代码。

        Objective-C是C的“超集”(superset),所以c语言中的所有功能在编写Objective.C代码时依然适用。因此,必须同时掌握c与objective.C这两门语言的核心概念,方能写出高效的0bjective-C代码来。其中尤为重要的是要理解c语言的内存模型(memory model),这有助于理解Objective—C的内存模型及其“引用计数”(reference counting)机制的工作原理。若要理解内存模型,则需明白:Objective-C语言中的指针是用来指示对象的。想要声明一个变量,令其指代某个对象,可用如下语法:

        这种语法基本上是照搬C语言的,它声明了一个名为someString的变量,其类型是NSString*。也就是说,此变量为指向NSString的指针。所有Objective·C语言的对象都必须这样声明,因为对象所占内存总是分配在“堆空间”(heap space)中,而绝不会分配在“栈”(stack)上。不能在栈中分配Objective—C对象:

        NSString stackString;

        //error:interface type cannot be statically allocated

 查看更多关于“ios培训资讯”的相关文章>>

标签:

热门专区

暂无热门资讯

课程推荐

微信
微博
15311698296

全国免费咨询热线

邮箱:codingke@1000phone.com

官方群:148715490

北京千锋互联科技有限公司版权所有   北京市海淀区宝盛北里西区28号中关村智诚科创大厦4层
京ICP备12003911号-6   Copyright © 2013 - 2019

京公网安备 11010802030908号