Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/107.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何对两个类使用相同的属性?_Ios_Objective C_Class_Properties_Game Center - Fatal编程技术网

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

Ios 如何对两个类使用相同的属性?,ios,objective-c,class,properties,game-center,Ios,Objective C,Class,Properties,Game Center,基本上,我在一个名为MyClassXY的类中有五个属性。在MyClassXY.m中,我有一个nstimer,它每0.1秒调用一次,并将这些属性设置为我从Main_game_scene viewcontroller类中设置的任何值。但是我在主视图控制器中分配了MyClassXY。将MyClassXY对象从主\u选择\u级别传递到主\u游戏\u场景视图控制器是解决此问题的唯一方法,或者是否有某种方法可以解决此问题。我不想分配一个全新的MyClassXY对象,因为它有一大堆其他变量,这两个类都需要与之

基本上,我在一个名为MyClassXY的类中有五个属性。在MyClassXY.m中,我有一个nstimer,它每0.1秒调用一次,并将这些属性设置为我从Main_game_scene viewcontroller类中设置的任何值。但是我在主视图控制器中分配了MyClassXY。将MyClassXY对象从主\u选择\u级别传递到主\u游戏\u场景视图控制器是解决此问题的唯一方法,或者是否有某种方法可以解决此问题。我不想分配一个全新的MyClassXY对象,因为它有一大堆其他变量,这两个类都需要与之交互。也许是课堂教学法


很抱歉提出新问题。

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

这取决于主游戏场景和主选择级别之间的关系。从第一段到第二段有分段吗?模式还是推?哪一个先来?然后可以将对象从源视图控制器传递到目标视图控制器。
如果您的所有应用程序都需要一个(且仅一个)MyClassXY类实例,请使用Singleton。

您当前使用以下方法创建和演示游戏:

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];

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

没有真正解决您的问题。计时器只是用来将值从一个类复制到另一个类,因为你不知道怎么做?哦,也许我应该这么说,但是,我正在使用Gamecenter制作一个多人游戏。我的意思是将结构的这些成员设置为属性的值,然后每0.1秒将结构发送到另一个设备。那么传递实例有什么错呢?没有错,我不知道该怎么做。如何传递实例?如何向单例添加数据?在指南里找不到它。使用:YourClass*c=[YourClass sharedInstance];只需将属性添加到.h文件中的类中,就像添加其他属性一样