您的位置:首页 > 移动开发 > Objective-C

【Objective-C】02-OC对象作为参数传递给函数

2014-12-04 23:08 260 查看
OC对象可以作为函数参数传递给参数,以下简述对象参数在函数中的两种情况:

一、对象作为参数传递到函数中,在函数内部对此对象的参数会影响到外部传递进来的对象。

二、对象作为参数传递到函数中,在函数内部指向其它的对象后,再对此参数对象进行操作时,不影响外部传递进来的对象。

如下文中的例子,函数test1为情况一,函数test2为情况二。

#import <Foundation/Foundation.h>
//声明Car类继承自NSObject
@interface Car:NSObject
{
@public
int wheels;//轮子
int speed;//速度
}
//声明run方法
- (void)run;
@end

@implementation Car
//实现run方法
- (void)run
{
//方法中的成员变量指当前对象的变量,即谁调用方法,访问的就是谁的成员变量
NSLog(@"%d个轮子,速度为%dkm/h的车子跑起来",wheels,speed);
}
@end

//传递一个Car类型的参数给test1函数
void test1(Car *newCar)
{
//通过对象修改成员
newCar->wheels=5;
}
//传递一个Car类型的参数给test2函数
void test2(Car *newCar)
{
//声明一个新的对象
Car *c2=[Car new];
c2->wheels=5;
c2->speed=300;
//将参数变量指向新创建的对象。此操作过后,对参数指针变量的操作不影响外部传递进来的对象
newCar=c2;
newCar->wheels=6;
}

int main()
{
//创建一个新的Car对象
Car *c=[Car new];
c->wheels=4;
c->speed=250;
//将新创建的对象传递给test2方法
test2(c);
[c run];
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: