0x01 程序的基本构成
一个Objective-C语言程序基本上由以下几部分组成:预处理命令、接口、实现、方法、变量、语句和表达式、注释。
0x02 最简单的程序示例
该程序将打印“Hello World!”
#import <Foundation/Foundation.h>
@interface SampleClass: NSObject
- (void)sampleMethod;
@end
@implementation SampleClass
- (void)sampleMethod{
NSLog(@"Hello, World! ");
}
@end
int main()
{
/* my first program in Objective-C */
SampleClass *sampleClass = [[SampleClass alloc]init];
[sampleClass sampleMethod];
return 0;
}
1、#import <Foundation/Foundation.h>是一个预处理命令,它告诉Objective-C语言编译器去查找Foundation框架中的Foundation.h文件并包含它;
2、我们也可以像C语言一样使用#include来达到包含某个文件的目的,但是使用#import的优点在于它可以保证每个头文件只被包含一次,无论该命令在程序中出现多少次;
3、
@interface SampleClass:NSObject 显示了如何创建一个接口。它继承NSObject,这是所有对象的基类;
- (void)sampleMethod; 称作“方法声明”,指明了这个对象所支持的功能;
@end 标志着接口的结束;
4、
@implementation SampleClass 显示了SampleClass的接口如何实现;
- (void)sampleMethod{} 显示了方法sampleMethod的具体实现代码;
@end标志着实现的结束;
5、
与printf()一样,NSLog()接受一个字符串作为其第一个参数,该字符串可以包含格式说明符(比如%d),此函数会接受与格式说明符相匹配的其他参数;
使用NS前缀告诉我们函数来自Cocoa而不是其他的工具包,使用前缀的意义在于避免名称冲突;
在Objective-C中只要看到@符号,就可以把它看成是对C语言的扩展;
在这个程序中,NSLog()语句里的@意味着引号内部的字符串应该作为Cocoa的NSString元素来处理。