需求描述
最近开发遇到这么一个需求,我们项目架构采用MVVM的变种模式,什么鬼?简单来说,在Model类和Controller类之间分离出专门处理数据逻辑的DataController层,假设A是我们的Controller层,B是DataController层.需求就是在B类中实现修改A类中的全局变量,实现方法有很多,下面的方法是我认为最elegant(zhuangbi)的
伪代码如下:
A:
{
Var *globalVar//全局变量
}
B *b = [B new];//实例化出b对象
Var* c_globalVar = globalVar;//将全局变量转成局部变量
[b showMeTheCode:&c_globalVar];
globalVar = c_globalVar;
NSLog(@“%@”,globalVar);
B.h:
-(void)showMeTheCode:(Var **)c_pointer_addr;
B.m:
-(void)showMeTheCode:(Var **)c_pointer_addr{
*c_pointer_addr = new_c;//将修改有的new_c赋值给全局变量
}