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 ;

}


}


目录
相关文章
|
6月前
|
设计模式 算法 数据安全/隐私保护
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用(二)
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用
118 0
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用(二)
|
6月前
|
存储 算法 编译器
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用(一)
【C++ 引用 】C++深度解析:引用成员变量的初始化及其在模板编程中的应用
765 0
|
6月前
|
编译器 C++
C++ 解引用与函数基础:内存地址、调用方法及声明
C++ 中的解引用允许通过指针访问变量值。使用 `*` 运算符可解引用指针并修改原始变量。注意确保指针有效且不为空,以防止程序崩溃。函数是封装代码的单元,用于执行特定任务。理解函数的声明、定义、参数和返回值是关键。函数重载允许同一名称但不同参数列表的函数存在。关注公众号 `Let us Coding` 获取更多内容。
174 1
|
存储 编译器 C++
<c++> &引用概念 | 引用用法 | 引用与指针区别
<c++> &引用概念 | 引用用法 | 引用与指针区别
187 0
|
C语言
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
559 0
【C 语言】指针间接赋值 ( 直接修改 和 间接修改 指针变量 的值 | 在函数中 间接修改 指针变量 的值 | 在函数中 间接修改 外部变量 的原理 )
|
iOS开发 C++
几个示例带你去了解OC对象是怎么分配内存的
1、64位系统环境的OC对象最小分配内存为16字节。 2、结构体内存对齐,是指在计算结构体大小的时候,其分配的原则:结构体大小必须是最大成员变量分配内存的倍数。 3、iOS操作系统在分配内存的时候,也有内存对齐的概念,为16的倍数 :在iOS的堆空间中,如果要创建一个OC对象,分配内存时,都是16的倍数。
212 0
|
C++
C++ 用引用的方式向函数传递数组
C++ 用引用的方式向函数传递数组
146 0
C++ 用引用的方式向函数传递数组