zoukankan      html  css  js  c++  java
  • 学习 Object-C: 简史

    对于一门语言的历史,我认为写一本书可能都不为过,关键是看你如何介绍和表达。当然每一个人的理解也大相径庭。本文阐述也仅仅只是冰山一角,如果需要深入了解,自己可能需要多花费一些心思。

    这里也不会给大家说太多的背景,对于编程来说好像也不是必须,所以我认为大概了解就可以。

    说起Objective-C,它是苹果公司用于开发MAC OS X 和IOS 设备的主要编程语言。从语言命名来理解,必然会想到C语言,苹果官方定义是:superset of the C(超集) 其实可以理解为C语言的一种扩展,大家都知道C语言是面向过程的,一堆函数,可阅读性不好。而Objective-C则是面向对象的(object-oriented)语言,它在C语言的基础上扩展,继承了很多C语言的特性,比如一个很重要的概念:指针。当然Objective-C的诞生,还有一种语言的功劳,那就是SmallTalk-80,Objective-C也是借鉴了它的很多语法风格。有兴趣的可以去详细了解下。

    我们再来看看苹果公司是如何发展Objective-C语言,先给大家看一张图:

    这是NeXT(NeXT也是上任苹果计算机CEO,Steve Jobs在1985年离开苹果计算机后所创立的公司)研发的一种操作系统NeXTSTEP。后来,在1996年,苹果公司出于战略考虑收购了NeXT公司,自然乔帮主又回到了苹果公司。基于NeXTSTEP code library,苹果公司把它集成到了自己的系统中去,也就是现在的MAC OS X,可以说NeXTSTEP 为苹果mac系统的发展奠定了基础。有了MAC 这个强大系统的支持,苹果的手机系统也发展起来,也就是现在的IOS,其实它是MAC 系统延伸出来的,所以它的大部分code还是来自于NeXTSTEP code libary。那NeXTSTEP 核心code是什么呢? 就是我们今天我们说的Objective-C。苹果对OC语言开始扩展重写,增强了OC的语法功能,定义了OC版本2.0,即Objective-C 2.0。由于苹果产品的火热,后来OC便很快成为了开发MAC 和IOS 应用的编程语言,越来越多的开发者学习了该语言,老实说,OC的火热完全是苹果产品带动起来的,用户量大,开发者才去投入。个人感觉OC的语法风格相对于Java C#还是不够简洁。

    题外话:有人说,学习Objective-C之前是不是需要学习C语言?我觉得这个还是有必要去了解的。当然也不一定非要从头到尾把C看一遍,做项目等。可以这样说,你可以初期只学习Objective-C,不看C语言,也同样可以。为什么这么说呢,学习本身就是一件很漫长的事情,关注的点太多,容易打消积极性,不知道大家有没有这种感觉,当你去尝试做一件事情的时候,发现做这件事情有很多条件,然后当你在去一个一个去完成这些条件的时候,时间已经很长了,精力也消耗很多,最后可能也不知道自己到底要做什么,容易迷茫,最终会有一种挫败感,久而久之自信心也就没了。当然,主要还是看你自己的实际情况,比如时间,精力等等。

    建议还是直接去看Objective-C,在学习的过程中,有些概念不清楚的,可以再去看C语言。即用既查,反复交错进行。

    后续我会一章一节的把OC语法详细的介绍一遍,如环境准备,Xcode等。基本上快的两周就可以掌握个大概,至少你能看懂code吧。还是那句话,写代码的捷径就是多练习。

    像上面提的,一门语言的历史是很难三言两语说清楚的,大家如果有兴趣可以自己查阅。

    这里我提供一些链接供大家参考:

    Objective-C (维基百科比较全面) Apple Objective-C(苹果官方文档) 建议还是多看官网文档,比较全面系统。

  • 相关阅读:
    poj 1789 每个字符串不同的字母数代表两个结点间的权值 (MST)
    poj 1251 poj 1258 hdu 1863 poj 1287 poj 2421 hdu 1233 最小生成树模板题
    poj 1631 最多能有多少条不交叉的线 最大非降子序列 (LIS)
    hdu 5256 最少修改多少个数 能使原数列严格递增 (LIS)
    hdu 1025 上面n个点与下面n个点对应连线 求最多能连有多少条不相交的线 (LIS)
    Gym 100512F Funny Game (博弈+数论)
    UVa 12714 Two Points Revisited (水题,计算几何)
    UVa 12717 Fiasco (BFS模拟)
    UVa 12718 Dromicpalin Substrings (暴力)
    UVa 12716 && UVaLive 6657 GCD XOR (数论)
  • 原文地址:https://www.cnblogs.com/0110x/p/Object-C.html
Copyright © 2011-2022 走看看