objective-c入门

一. objective-c简介

Objective-Objective-C是C语言的严格超集--任何C语言程序不经修改就可以直接通过Objective-C编译器,在Objective-C中使用C语言代码也是完全合法的。Objective-C被描述为盖在C语言上的薄薄一层,因为Objective-C的原意就是在C语言主体上加入面向对象的特性。
扩展名 内容类型
.h 头文件。头文件包含类,类型,函数和常数的声明。包含头文件时,#import 选项和 #include 选项完全相同,只是它可以确保相同的文件只会被包含一次。
.m 源代码文件。这是典型的源代码文件扩展名,可以包含 Objective-C 和 C 代码。
.mm 源代码文件。带有这种扩展名的源代码文件,除了可以包含Objective-C和C代码以外还可以包含C++代码。仅在你的Objective-C代码中确实需要使用C++类或者特性的时候才用这种扩展名。

二. 语法

1. 字符串
大多数Objective-C通常不使用C语言风格的字符串。反之,大多数框架把字符串传递给NSString对象。NSString类提供了字符串的类包装,包含了所有你期望的优点,包括对保存任意长度字符串的内建内存管理机制,支持Unicode,printf风格的格式化工具
NSString* myString = @"My Stringn"; 
NSString* anotherString = [NSString stringWithFormat:@"%d %s", 1, @"String"];
2. 类
Objective-C 的类规格说明包含了两个部分:定义(interface)与实现(implementation)。定义(interface)部分包含了类声明和实例变量的定义,以及类相关的方法。实现(implementation)部分包含了类方法的实际代码。
  • interface

    定义部分,清楚定义了类的名称、数据成员和方法。 以关键字@interface作为开始,@end作为结束
    @interface MyObject : NSObject { 
        int memberVar1; // 实体变量 
        id  memberVar2; 
    } 
    +(return_type) class_method; // 类方法 
    -(return_type) instance_method1; // 实例方法 
    -(return_type) instance_method2: (int) p1; 
    -(return_type) instance_method3: (int) p1 andPar: (int) p2; 
    @end
    //方法前面的 +/- 号代表函数的类型:加号(+)代表类方法(class method),不需要实例就可以调用,与C++ 的静态函数(static member function)相似。减号(-)即是一般的实例方法(instance method)。
    //Objective-C定义一个新的方法时,名称内的冒号(:)代表参数传递,不同于C语言以数学函数的括号来传递参数。Objective-C方法使得参数可以夹杂于名称中间,不必全部附缀于方法名称的尾端,可以提高程序可读性。设定颜色RGB值的方法为例:
     - (void) setColorToRed: (float)red Green: (float)green Blue:(float)blue; /* 宣告方法*/
     [myColor setColorToRed: 1.0 Green: 0.8 Blue: 0.2]; /* 呼叫方法*/
    //这个方法的签名是setColorToRed:Green:Blue:。每个冒号后面都带着一个float类别的参数,分别代表红,绿,蓝三色。
  • Implementation

    实现区块则包含了公开方法的实现,以及定义私有(private)变量及方法。 以关键字@implementation作为区块起头,@end结尾。
    @implementation MyObject {
      int memberVar3; //私有實體變數
    }
    +(return_type) class_method {
        ... //method implementation
    }
    -(return_type) instance_method1 {
        ...
    }
    -(return_type) instance_method2: (int) p1 {
        ...
    }
    -(return_type) instance_method3: (int) p1 andPar: (int) p2 {
        ...
    }
    @end
  • 创建对象

    Objective-C创建对象需通过alloc以及init两个消息。alloc的作用是分配内存,init则是初始化对象。
    MyObject * my = [[MyObject alloc] init];
    MyObject * my = [MyObject new];

你可能感兴趣的:(objective-c入门)