Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.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:CS193p fall2013任务2任务2:添加一个按钮让用户重新启动游戏_Ios_Objective C_Properties_Cs193p - Fatal编程技术网

IOS:CS193p fall2013任务2任务2:添加一个按钮让用户重新启动游戏

IOS:CS193p fall2013任务2任务2:添加一个按钮让用户重新启动游戏,ios,objective-c,properties,cs193p,Ios,Objective C,Properties,Cs193p,我正在学习CS193PIOS在itunes上开发的课程,我刚刚开始作业2。我被要求重新启动游戏的任务卡住了。 该项目的一点背景:我正在为我的CardGameViewController中新添加的重启按钮操作方法编写代码。我有两个私人财产:游戏和甲板。我在CardGameViewController中使用惰性初始化,当用户第一次触摸按钮滑动卡片时对其进行初始化。教授在讲座中介绍的原始项目只是UI上的一些卡片,用户可以翻转它们并匹配它们,而无需重新启动功能,这是要求我在作业中添加的功能。 为了让用户

我正在学习CS193PIOS在itunes上开发的课程,我刚刚开始作业2。我被要求重新启动游戏的任务卡住了。 该项目的一点背景:我正在为我的CardGameViewController中新添加的重启按钮操作方法编写代码。我有两个私人财产:游戏和甲板。我在CardGameViewController中使用惰性初始化,当用户第一次触摸按钮滑动卡片时对其进行初始化。教授在讲座中介绍的原始项目只是UI上的一些卡片,用户可以翻转它们并匹配它们,而无需重新启动功能,这是要求我在作业中添加的功能。 为了让用户重新启动游戏,我想我需要重新初始化上面提到的两个属性并更新UI。我尝试了以下代码,但当我按下刚才添加的按钮时,程序崩溃:

- (IBAction)touchRestartButton:(UIButton *)sender
{
    self.game = nil;
    self.theDeck = nil;
    // Maybe I also need to initialize the two properties again here using some code which I cannot figure out right now.... 
    [self updateUI];
}
有人能给我解释一下如何在objective-c中重新初始化属性吗?我也尝试过[self.game release],但编译器阻止我这样做,因为它说它处于ARC模式
或者有没有其他方法来完成重新启动游戏的任务?

我不知道你的类是什么,但你可以在游戏和游戏组中调用指定的初始化器;例如:self.game=[[game alloc]init];self.theDeck=[Deck alloc]initWithCards:52];。您需要显示您的游戏和牌组标题,以便我们编写准确的代码;但是我不知道如何清除属性并重新初始化它们…你是说self.property=nil是正确的吗??或者你的意思是我不需要清除它们,我只是初始化并重新分配它们,那么属性的原始内存将自动释放?当你清除属性时,你可以将它们设置为零或重新分配新对象。在这两种情况下,如果不存在对以前的对象的其他强引用,则会释放以前的对象,并且会释放内存。在你的情况下,你需要使用alloc/init和你指定的类初始化器来分配新的对象,这样你就可以将游戏重置为一个新的开始状态。好的。这很有意义,我会试试的,非常感谢!