如何为两个类使用相同的属性?

时间:2014-04-15 07:31:30

标签: ios objective-c class properties game-center

基本上我在一个名为MyClassXY的类中有五个属性。在我的MyClassXY.m中,我有一个每0.1秒调用一次的nstimer,并将这些属性设置为我从Main_game_scene viewcontroller类设置这些属性的任何值。但是我在Main_Select_level视图控制器中分配了MyClassXY。解决此问题的唯一方法是将MyClassXY对象从Main_Select_level传递给Main_game_scene视图控制器,还是有一些方法可以解决这个问题。我不想分配一个全新的MyClassXY对象,因为它有一大堆其他类需要与之交互的其他变量。也许是班级方法?

抱歉新手问题。

3 个答案:

答案 0 :(得分:0)

您可以将MyClassXY修改为singleton。然后,您可以在程序中的任何位置获得对它的引用,但它始终是相同的实例。例如,[UIApplication sharedApplication]是一个单例。

答案 1 :(得分:0)

这取决于Main_game_scene和Main_Select_level的关联方式。从第一个到第二个是否有一个segue?莫代尔还是推?哪一个先来?然后,您可以将对象从源视图控制器传递到目标视图控制器。 如果您的所有应用都需要一个(也是一个)MyClassXY类实例,请使用Singleton。

答案 2 :(得分:0)

您目前使用以下方式创建和展示游戏:

ViewController *viewcont = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
[view2 presentViewController:viewcont animated:NO completion:nil];

通过管理游戏中心互动的课程(使用你的计时器),你需要做的就是:

ViewController *viewcont = [[ViewController alloc]initWithNibName:@"ViewController" bundle:nil];
viewcont.scoreController = self.scoreController;

[view2 presentViewController:viewcont animated:NO completion:nil];

其中scoreControllerViewController上的一个属性,用于保存对游戏中心交互控制器的引用,self.scoreController是您之前创建的该类的实例。