<-流-浪-者->
alyan
全部博文(122)
Python(6)
数据结构与算法(2)
C++(0)
C语言(1)
shell编程(0)
正则表达式(0)
马克斯?韦伯(1)
论语(0)
跑在北京 2009(1)
跑步人生(1)
读书休闲(2)
爱默生(2)
人云亦云(0)
2009(4)
2008(5)
GDB调试(0)
Vim-高效的代码编(11)
Firefox-自由强大(0)
GDB手册(5)
北京山水(2)
攀岩?珠江公园(9)
攀岩技术总结(5)
北京/白河(5)
迷途六里坪(3)
流浪时光?小五台(5)
戏说攀岩之道(7)
为什么要远足(3)
开源(2)
Kernel(1)
技巧提炼(3)
Linux 应用(9)
工具软件(6)
Googler(1)
ARM学习(2)
ARM初尝试 2008(2)
CS(7)
WSN(0)
Loongson(0)
分布式计算环境与(0)
ARM(2)
pmon(0)
dev-3210(1)
2010年(1)
2009年(76)
2008年(45)
cynthia
浪花小雨
Linux925
kid_x
bluebird
呱呱牛
yuansu19
36853
dear531
分类: LINUX
2009-04-22 15:19:16
其实也谈不上学,花了大概1个小时很快的过了一下而已。因为最近看.m又不是matlab的文件,语法比较熟悉,于是想起来是不是这个类似于C的语言:Objective C.很早朱老师就和我说不起过这个东东,Objective C --就像苹果所代表的用户品质一样--简洁,优雅,于是我一直也在想什么时候能体验一下这样美的东西。学习概要:学习Object-C简单分为语法部分和类库,前者为语言本身,后者为开发所需。几个概念:XCode 集成开发环境 类似VistualStudioObjective-C 语言本身Cocoa 类库,框架 类似于.Net语法与C相差无几,一眼看过去,很简洁。区别是有类继承。类库该是不属于语言本身的,Object-C则更多是因为于苹果平台较密切,主要Cocoa类库类似于MFC或.Net的一套开发框架,具体框架结构和原理还不懂。非苹果平台下的Object-C呢?类语法:/* Speak.h */ #import @interface Speak: Object { char* string; } - setString: (char*) str; - say; - free; @end#import 是改进版的#include, 在编译相同的单元时不会被多次包括进行.Object类是Objective-C类的超类. Speak类由编译程序指示字@interface和@end包围.定义内部是花括号包围的代码块. 数据块后是类方法定义.每个方法用减号说明. /* Speak.m */#import "Speak.h"@implementation Speak + new { self = [supper new]; [self setString: ""]; return self; } - setString: (char*) str { string = str; return self; } - say { printf("%s\n", string); return self; } - free { return [super free]; } /* hellowobject.m */ #import #import "Speak.h"main() { id speak; speak = [Speak new]; [speak setString: "hello, world"]; [speak say]; [speak free]; }编译器指示字@implementation说明源文件包含的是Speak类方法实现. 减号开头的是实例方法,只能被已经存在的对象调用; 任何时候都可以调用+开头的方法. 大多数方法返回的类型是id, 因此都返回的是self,这是对象自己引用自己的一种方法. 语法细节:减号、中括号和NS****减号表示一个函数、或者方法、或者消息的开始,怎么说都行。比如c#中,一个方法的写法可能是:private void hello(bool ishello){//OOXX}用Objective-C写出来就是-(void) hello:(BOOL)ishello{//OOXX} 中括号中括号可以认为是如何调用你刚才写的这个方法,通常在Objective-C里说“消息”。比如C#里你可以这么写:this.hello(true);在Objective-C里,就要写成: [self hello:YES];NS****NS是苹果自有的类专用的,它代表NeXTStep。Mac OSX就是在NeXTStep操作系统的基础上发展起来的,苹果公司收购了NeXT公司,此举使乔布斯(Steve Jobs)重返苹果并重坐第一把交椅。苹果类库以NS开头,开发人员应避免自定义类库也以NS开头,避免混淆。为什么 @"字符串"而不是"字符串""字符串"是C的字符串,@"" 是把C的字符串转成NSString的一个简写.在需要NSString的地方才需要这个转化,例如NSLog里面.在需要C string的地方,还是用"字符串"的.另外,@""这个转换是不支持中文的.例如NSLog(@"字符串"); 是一定输出不了中文的.nil :Objective-C里的NULL(空)就这么写,表示空指针。id :一种比较特殊的数据类型,在Objective-C里,一切东西都是指针形式保存,你获取到的就是这个对象在内存的位置,id用于标识此位置。数组:可以保存各种不同类型的数据,更新一个容器,大杂缸:)有了这些,基本上可以读懂Objective C 代码了,这样暂时就足够了。在其对类的扩展方面,没有学习。我想想学到可用,在于研究Cocoa类库吧:)可进一步学习的一个链接:(繁体)
上一篇:初读韦伯-新教伦理与资本主义精神
下一篇:压缩传感简介
a525274592010-04-14 14:02:21
http://blog.chinaunix.net/u3/104182/group.html 欢迎加入我的博客圈,Objective-C 我开始学习这个了!
登录 注册