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 ;

}


}


目录
相关文章
|
自然语言处理 监控 Dubbo
Seata常见问题之使用tcc模式配置yml如何解决
Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集
387 4
|
SQL Oracle 关系型数据库
|
11月前
|
机器学习/深度学习 人工智能 自然语言处理
FullStack Bench:字节豆包联合M-A-P社区开源的全新代码评估基准
FullStack Bench是由字节跳动豆包大模型团队与M-A-P社区联合推出的全新代码评估基准,专注于全栈编程和多语言编程能力评估。该基准覆盖超过11种真实编程场景,包含3374个问题,涉及16种编程语言,旨在更有效地衡量大模型在现实世界中的代码开发能力。
338 5
FullStack Bench:字节豆包联合M-A-P社区开源的全新代码评估基准
|
JSON JavaScript 前端开发
Android调用Vue中的JavaScript代码
Android调用Vue中的JavaScript代码
343 3
|
算法 数据中心 Python
基于python雪花算法工具类Snowflake-来自chatGPT
基于python雪花算法工具类Snowflake-来自chatGPT
326 4
npm-check【实用教程】升级项目中的依赖
npm-check【实用教程】升级项目中的依赖
383 0
|
Kubernetes 监控 Cloud Native
"解锁K8s新姿势!Cobra+Client-go强强联手,打造你的专属K8s监控神器,让资源优化与性能监控尽在掌握!"
【8月更文挑战第14天】在云原生领域,Kubernetes以出色的扩展性和定制化能力引领潮流。面对独特需求,自定义插件成为必要。本文通过Cobra与Client-go两大利器,打造一款监测特定标签Pods资源使用的K8s插件。Cobra简化CLI开发,Client-go则负责与K8s API交互。从初始化项目到实现查询逻辑,一步步引导你构建个性化工具,开启K8s集群智能化管理之旅。
246 2
|
存储 数据采集 自然语言处理
FastGPT知识库结构讲解
FastGPT知识库结构讲解
1098 0
|
云栖大会
定了!2024云栖大会,9月19日见
定了!2024云栖大会,9月19日见
234 6
|
机器学习/深度学习 算法 TensorFlow
TensorFlow 深度学习第二版:1~5(2)
TensorFlow 深度学习第二版:1~5(2)
195 0