找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3013|回复: 0
收起左侧

Programming in Objective-C

[复制链接]
ID:51773 发表于 2013-8-16 12:48 | 显示全部楼层 |阅读模式
今年没有看着什么新的有点思想的东西,虽然前不久买了两三本关于实时系统的和FPGA的,可是都忙着工作,都没怎么看着,当然,这些也都是些application(应用)的了,并不是一些basic(基础)型的。呵,经常去图书馆借离散数学和偏导回来,可是翻都没翻又还回去,而且是过期先,真是晕死。不知为什么现在的心都不如几年前了,那时虽然也是如饥视渴,但是还是可以一步步地慢慢从基础开始,现在可不行了,总静不下心来学些基础的……(费话还有很多很多)
言改正传。前不久,不知算不算心血来潮,突然就想玩玩apply(苹果),于是想到了买机器,装MAC OS X(苹果的操作系统),载XCode(Mac OS X下的一个开发平台),下文档等等之类。当然,想了就做了(广告语:Just do it)。呵,运气不好,在淘宝找了两个商家,一个说我不懂装懂直接不卖我,另一个说着传机器的照片过来的,结果照片没过来机器卖别人了。也罢,本想再买个小白来陪一下现在这台小黑的,没办法,他们都逼我省钱。只好在现在的小黑上装上小白的心--Mac OS X and XCode, etc.
文档下了一大堆,从Mac OS X的核darwin到上层的Cocoa等等。今天花了半天学会了基本的Objective-C。好久没有看过english document(英文文档)了,有些困难,不过还好,几乎都只是看看文档里的代码就都差不多明白了,哈,一目十行不在话下。
说说对Objective-C的一点点感觉吧。几年来我神游过很多种计算机编程语言,我觉得最好玩和最深奥的还是函数式的,像Lisp和Scheme,到现在我还没得到其精髓所在;而最常用的就是C语言了,从最底层的bootloader到OS,到驱动再到应用层,从单片机,到PC再到大型机,它都可以上任,而且做得很好;最实用的就是shell,如果shell也算一种语言的话。编程语言现在最流行的是什么?OO(面向对象)!不管是新兴的python, php, java, c#,就连有点古老的pascal都加上了OO的支持,也就是delphi吧。如果你现在去书店里转转就会发现编程方面的书都几乎被java和c#的书给占完了,而几年前我出道的时候最流行的还是C++,不管网上还是网下,到处都是学习C++,论OO。C++学了几年了,精算不上了,但是还算上熟悉吧。其实,不管是哪种语言,都脱离不了计算机这个不变的东西,如果你能达到和计算机一样的思维再加上这些语言的思想那就是难达到真正地运用自如了。(呵,计算机这个东西我觉得我已经理解得差不多了)
哎呀呀,又扯得远了些,怪不得以前语文老师不是说我的作文写得好就是写得又臭又长的- -b
那天用XCode(就像M$的VS,Borland的delphi和BCB)生成了个程序,呵,看到objc(Objective-C的简称)代码中一大堆方括号[],还真是给看晕了。心想怎么这么麻烦的,比起c++, java, c#来太不艺术了。可是,今年终于明白了很多。其实objc在OO方面是从OO的鼻祖smalltalk给直接继承过来的(以前虽然也去研究了一下smalltalk,可是没入门就又出来了),它还是沿用着message(消息传递)的方式进行OO处理,而不像现在流行的c++, java, c#使用function call(函数调用)方式进行。举个例子:
object.function(argument); // function call
[object method: message]; // message
还有,学过C++的都应该知道,C++是可以多重继承的,可是objc和java一样,只能单一继承。
当然还有其它很多地方,现在还没深入。
呵,不知是不是被C++, java, C#思想的毒害,总感觉objc的语法不优雅不够艺术,写得太复杂,也许这也是其不如前者流行的原因吧。但是,这种OO的思想真的是原汁原味的。
再多说一下,其实,objc与cocoa的关系就只是一种语言与一个库的关系,就像C++与MFC,C#与.NET,JAVA与swing一样。

附:
1,wikipedia中关于objective-c的详细介绍:http://en.wikipedia.org/wiki/Objective-C
2,Introduction to The Objective-C 2.0 Programming Language:http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/Introduction/chapter_1_section_1.html
3,Foundation Framework Reference:http://developer.apple.com/documentation/Cocoa/Reference/Foundation/ObjC_classic/index.html
4,Introduction to Cocoa Fundamentals Guide:http://developer.apple.com/documentation/Cocoa/Conceptual/CocoaFundamentals/Introduction/chapter_1_section_1.html
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表