文件扩展名
| 扩展 | 含义 |
|---|---|
| .c | C语言源文件 |
| .cc, .cpp | C++语言源文件 |
| .h | 头文件 |
| .m | Objective-C源文件 |
| .mm | Objective-C++源文件 |
| .pl | Perl源文件 |
| .o | Object (已编译的) 文件 |
基础实例
导入包/库
导入Foundation目录下的Foundation.h文件import <Foundation/Foundation.h>
main函数
int main (int argc, const char *argv[]) {
@autoreleasepool {}return 0;}
打印
打印常量
打印 NSString对象 @”Hello, World!”NSLog(@"Hello, World!");
打印变量int sum;sum = 50 +25;NSLog(@'The sum of 50 and 25 is %i', sum);
类, 对象, 方法
对象:类的唯一表示
实例:类的具体表示
方法:在实例上执行的操作
示例代码
1 | // Program to work with fractions – class version |
类和方法的申明和调用
⚠️ OC是大小写敏感的
1、@interface section(预申明类和方法)
@interface section 描述类和方法
一般形式:
1 | @interface NewClassName: ParentClassName |
示例代码:
1 | @interface Fraction: NSObject |
第一行:申明了一个类Fraction,其父类为NSObject,这个父类在NSObject.h中被定义,此文件被包含在Foundation.h中
第二行: - 表示申明了一个实例方法(对类的实例执行的方法),+ 表示申明了一个类方法(对类本身执行的方法)
第三行: (void) 表示返回值为空
第四行: 申明了一个返回值为空,名叫setDenominator的实例方法,它的参数是d,类型为int
第五行:以@end结尾
2、@implementation section (具体申明类和方法)
@implementation section 描述数据和实施interface申明类和方法的实际代码
一般形式:
1 | @implementation NewClassName { |
示例代码:
1 | @implementation Fraction { |
第一行:类后面的父类可跟,可不跟
第二、三行:申明实例变量(实例化一个类时被创建,和实例对应)
扩展的函数:在{}申明函数的具体内容
最后以@end结尾
3、program section 包含执行的程序代码 (实例化类并调用方法)
1 | int main (int argc, char * argv[]) { |
实例化并初始化一个对象方法一
1、申明一个指针(即存储一个地址)myFraction,指针指向的地址,用于储存Fraction类的值Fraction *myFraction;
2、发送消息给Fraction类,分配一个内存空间(将所有实例变量都置零),这里已经实例化完成myFractionmyFraction = [Fraction alloc];
3、发送消息给myFraction,初始化myFraction = [myFraction init];
实例化并初始化一个对象方法二
合并以上代码Fraction *myFraction = [[Fraction alloc] init];
实例化并初始化一个对象方法三
合并alloc和initFraction *myFraction = [Fraction new];
调用类和方法
一般形式:[ ClassOrInstance method ];
如: [ yourCar new ];
[ ClassOrInstance method: argument ];
如: [ yourCar setSpeed: 55 ];
示例代码:
1 | [myFraction setNumerator: 1]; |
第一行:向myFraction发送消息setNumerator,参数为1;然后向setNumerator发送消息,参数为1;之后会调用Fraction类的setNumerator方法,此时1存在变量n中,最后将此值存到实例变量numerator中
基本的访问器方法(setter和getter)
1 | @interface Fraction: NSObject |