一、对象作为方法参数传递是地址传递
@class CZDog;
-(void)biteOtherDog:(CZDog*)other
{
NSLog(@"%@咬了%@",_name,other->_name);
}
其中,(CZDog*)other是作为方法参数的对象
如果作为参数的类在该文件中没有定义,则在前面加上“@class +类名”声明一下,也可以#import声明该类的文件的头文件
使用@class优点:可以防止文件的循环导入;@class仅仅是一个类,不像#import需要把头文件拷贝过来
二、对象在作为方法参数的传递的过程
当调用该方法的时候,传入对象是指向堆内存的指针
在函数内部可以访问对象的属性,调用对象上的方法
三、对象作为方法的返回值
由于对象保存在堆中所以对象可以作为方法的返回值
四、当对象作为方法参数的或返回值的时候,那么方法就对这个对象产生了依赖了,当对象发生变更的时候,可能还需要修改使用到它的方法