1.Obj-C中函数的书写方式与其他风格语言不同。
如 C风格语言书写方式为:void func (int c);
Obj-C的书写方式为:-(void)func:(int)c; 这个函数的函数名为“func:”,多个参数就要跟多个冒号。
函数名的标签可以省略,但最好书写,因为这是对形参的一种描述。
2. 创建一个类的对象,OC中是不允许在栈里面声明类的的对象的,对象都是在堆中声明。
如,Dog类声明一个对象dog:
Dog * dog=[Dog alloc];
在堆里声明一个Dog类的对象,将对象的地址,付给栈里的指针变量dog。
3. 调用一个函数“func”,需要使用对象进行调用,如Dog类的对象dog,需要这样调用。
[dog func];
4. Obj-C规定所有以init开头的函数都是构造函数,返回值为指针类型。
-(Dog *)init;//这是没有参数的构造函数
构造函数的书写格式一般为:
-(Dog *)init
{
if(self=[surper init])//self相当于C++中的this,surper是指向父类的
{ //指针。这里调用根类的init
x=y=0;
}
return self;
}
5. OC没有真正的自调用的构造函数,故调用[surper init].
实例对象可看为两步,声明空间和构造函数init:
1 Dog * dog=[Dog alloc]; 2 [dog init];
这两步可以合起来写为:Dog * dog=[[Dog alloc]init];
6. 带参数的构造函数,Obj-C中没有真正的构造函数,也没有真正的重载。仔细分析的话,有参和无参的构造函数函数名不同。
-(Dog *)initWithX:(int)newx AndY:(int)newY;这是带参的构造函数,实际上它的函数名为“initWithX: AndY:”。
转载于:https://blog.51cto.com/rongchengfei/1082142