OC如何实现函数参数对象的地址传

简介: OC如何实现函数参数对象的地址传

你发现采用C/C++的&传递地址函数参数编译器报错。那么做到给函数传递地址,让函数改变参数对象的指针呢?

解决办法:我们不能直接修改对象的地址,但是可以通过修改对象的成员函数指针的指向来变相实现对象地址的

转变。当然你可以采用定义一个本页面对象的对象,传递参数的编号来实现修改那个成员变量。


@interface PPHotListEntity : PPJoyListEntity

@property (nonatomic, assign) NSUInteger page;

@property (nonatomic, assign) NSInteger cate_id;

@property (nonatomic, assign) BOOL is_hot;

@property (nonatomic, assign) long long receiveTime;

//@property (nonatomic, assign) long long newsMessageTime;


@property (nonatomic, strong) PPHotMessageEntity *firstMessage;

@property (nonatomic, strong) PPHotMessageEntity *secondMessage;

@property (nonatomic, strong) PPHotMessageEntity *thirdMessage;

@property (nonatomic, strong) PPHotMessageEntity *fouthMessage;


@property (nonatomic, strong) NSMutableArray *roomList;

@property (nonatomic, strong) NSMutableArray *messageList;


@property (nonatomic, assign) BOOL is_page;


@end


-(void)moveMessageViewWithDecHotMessageView:(PPHotMessageView *)decHotMessageView decHotMessageEntityIndex:(NSUInteger)decHotMessageEntityIndex srcHotMessageEntity:(PPHotMessageEntity *)srcHotMessageEntity

{

if(1 == decHotMessageEntityIndex)

{

self.hotListEntity.firstMessage = [[PPHotMessageEntity alloc] initWithHotMessageEntity:srcHotMessageEntity];

decHotMessageView.hidden = NO;

decHotMessageView.model = self.hotListEntity.firstMessage ;

}

else if(2 == decHotMessageEntityIndex)

{

self.hotListEntity.secondMessage = [[PPHotMessageEntity alloc] initWithHotMessageEntity:srcHotMessageEntity];

decHotMessageView.hidden = NO;

decHotMessageView.model = self.hotListEntity.secondMessage ;

}

else if(3 == decHotMessageEntityIndex)

{

self.hotListEntity.thirdMessage = [[PPHotMessageEntity alloc] initWithHotMessageEntity:srcHotMessageEntity];

decHotMessageView.hidden = NO;

decHotMessageView.model = self.hotListEntity.thirdMessage ;

}

else if(4 == decHotMessageEntityIndex)

{

self.hotListEntity.fouthMessage = [[PPHotMessageEntity alloc] initWithHotMessageEntity:srcHotMessageEntity];

decHotMessageView.hidden = NO;

decHotMessageView.model = self.hotListEntity.fouthMessage ;

}


}


目录
相关文章
|
存储 Cloud Native Linux
C++指针和引用的作用以及区别
C++指针和引用的作用以及区别
|
7月前
|
设计模式 算法 数据安全/隐私保护
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用(二)
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用
127 0
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用(二)
|
7月前
|
存储 算法 编译器
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用(一)
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用
912 0
|
7月前
|
编译器 C++
C++ 解引用与函数基础:内存地址、调用方法及声明
C++ 中的解引用允许通过指针访问变量值。使用 `*` 运算符可解引用指针并修改原始变量。注意确保指针有效且不为空,以防止程序崩溃。函数是封装代码的单元,用于执行特定任务。理解函数的声明、定义、参数和返回值是关键。函数重载允许同一名称但不同参数列表的函数存在。关注公众号 `Let us Coding` 获取更多内容。
196 1
|
存储 编译器 C++
<c++> &引用概念 | 引用用法 | 引用与指针区别
<c++> &引用概念 | 引用用法 | 引用与指针区别
199 0
|
程序员 编译器 数据安全/隐私保护
内存、引用、封装、函数
内存、引用、封装、函数
77 0
|
存储 Java 程序员
Go语言:参数传递中,值、引用及指针之间的区别
1、在Go语言中,值类型和引用类型有以下特点: a、值类型:基本数据类型,int,float,bool,string,以及数组和struct 特点:变量直接存储值,内存通常在栈上分配,栈在函数调用完会被释放
253 0
Go语言:参数传递中,值、引用及指针之间的区别
|
存储 Java C++
基于堆栈内存详析 Java函数形参是传值还是引用? | C++指针与Java引用的区别 | C++引用、指针等之间的区别 | C++与Java类的实例化的区别
基于堆栈内存详析 Java函数形参是传值还是引用? | C++指针与Java引用的区别 | C++引用、指针等之间的区别 | C++与Java类的实例化的区别