Iphone 在另一个类中设置对象?
我有一个类“DogViewController”,我在其中声明一个属性并合成它:Iphone 在另一个类中设置对象?,iphone,objective-c,xcode,ipad,Iphone,Objective C,Xcode,Ipad,我有一个类“DogViewController”,我在其中声明一个属性并合成它: @property (nonatomic, assign) NSInteger myInt; @synthesize myInt; 我还有另一个类,“CatViewController”,我想在其中设置myInt变量,所以我就是这么做的: @property (nonatomic, retain) DogViewController *myDogViewController; @synthesize myDo
@property (nonatomic, assign) NSInteger myInt;
@synthesize myInt;
我还有另一个类,“CatViewController”
,我想在其中设置myInt变量,所以我就是这么做的:
@property (nonatomic, retain) DogViewController *myDogViewController;
@synthesize myDogViewController;
myDogViewController.myInt = 5;
然后,我想从DogViewController类访问myInt,我通过以下方式进行访问:
someVar = self.myInt;
在该命令之后,someVar应该是==5
有没有这样做不起作用的原因?您必须先实例化DogViewController。因此,在CatViewController中:
DogViewController *dogViewController = [[DogViewController alloc] initWithNibName@"DogViewController" bundle:nil];
dogViewController.myInt = 5;
// If you are using a navigation controller push DogViewController like this:
[self.navigationController pushViewController:dogViewController animated:YES];
[dogViewController release];
如果您不使用导航控制器,只需以您想要的任何方式显示该视图我想您不会得到值5。因为它将被重置 你可以按下面的方法做 在“CatViewController”中,创建一个类似“setParent”的方法 在.h文件中引入变量: 身份证父母 .m文件中的函数:
-(void)setParent:(id)pidParent{
parent = pidParent;
}
在CatViewController.m文件中导入“DogViewController.h”
当您按下DogViewController时,它也被称为setParent方法
像
[objDogViewController setParent:self]
然后您可以使用“parent”变量设置值
干杯。尝试在基本数据类型中不使用
retain
,而是使用assign
@property (nonatomic, assign) NSInteger myInt;
您是否已在执行
myDogViewController.myInt=5时实例化了myDogViewController
代码>?@property命令没有实例化它吗?@property指令只是指示Objective-C预编译器准备在实现文件中创建getter和setter。@synthesis关键字然后导致预编译器注入实际的getter/setter代码(除非手动重写这些方法)。如果您的属性需要初始化,您需要单独进行初始化(例如,在构造函数中)。这不是问题的原因。他的示例中的DogViewController从未初始化,这就是他无法访问其任何属性的原因。您能否编辑您的答案以反映OP可能未使用视图控制器这一事实?当然-但问题不是在谈论VC吗?基于OP今天的其他问题,这些不是VC的。Ofc,他在这个问题上也从来没有说过,他们总是安全地采用最低公分母。