2014-11-06 62 views
0

我有一个问题,我似乎无法找到解决方案。我对Swift很陌生,正在尝试创建一个TicTacToe游戏。EXC_BREAKPOINT在xcode 6中

每当我在多人游戏模式下完成游戏时,弹出一个播放按钮。我点击它,它会自动崩溃,并表示有一个断点(EXC_BREAKPOINT

复位游戏按键连接到@IBAction func

@IBAction func playAgainPressed(sender : AnyObject) { 

    goNumber = 1 

    winner = 0 

    gameState = [0, 0, 0, 0, 0, 0, 0, 0 ,0] 

    label.center = CGPointMake(label.center.x - 400, label.center.y) 

    playAgain.alpha = 0 

    var button : UIButton 

    for var i = 0; i < 9; i++ { 

     button = view.viewWithTag(i) as UIButton 

     button.setImage(nil, forState: .Normal) 
    } 
} 

每当我设置i = 0它崩溃。每当我将i设置为1时,它都能正常工作。虽然标签0是游戏的左上角,但只要i = 1它会重置除左上角按钮之外的每个按钮。当我设置i = 0时,它也会隐藏左上角,但是在那时它会崩溃。

有什么想法?


我怎样才能设置它,所以我有我的UIButton阵列,它重新设置后,我再次按播放?我还没有与标签0多个视图当我重新编排我的左上方按钮到100,而不是0我收到一个不同的错误,看起来像这样:

@IBAction FUNC buttonPressed(发件人:AnyObject){

if (gameState[sender.tag]==0 && winner == 0) { 

    var image = UIImage() 

    if (goNumber%2==0){ 
     image = UIImage(named:"o")! 
     gameState[sender.tag] = 2 
    }else{ 
     image = UIImage(named:"x")! 
     gameState[sender.tag] = 1 
    } 

“如果(游戏状态[sender.tag] == 0 & &冠军== 0)”

这个接收EXC_BAD_INSTRUCTION犯错

我不知道什么是错用标记0的左上角公司rner,据我所知我只有一个编号为0的视图。

+0

创建一个数组''[UIButton]'并在其中放入9个按钮的引用。然后,您可以遍历该数组,并确定您正在处理按钮。比使用viewWithTag()' – zisoft 2014-11-06 09:07:12

回答

1

您不应该使用标记0作为标识符,这是默认值。

The document说:

默认值为0,可以设置此变量的值并使用该值后,以确定该视图。

因此,您有多个标记为0的视图。

+2

好得多,我会走得更远,并说在这种情况下根本不使用标签。 – Abizern 2014-11-06 08:31:02