有谁知道这段代码有什么问题?

时间:2016-02-04 00:03:30

标签: ios arrays swift uibutton swift2

我会直接跳到这一点。我的应用程序崩溃了,我不知道它有什么问题。我最可能不正确的是屏幕尺寸的部分,但我真的不这么认为。以下是我的屏幕尺寸变量:

let screenSize: CGRect = UIScreen.mainScreen().bounds
let screenWidth = screenSize.width - CGFloat(screenSize.width)
let screenHeight = screenSize.height - CGFloat(screenSize.height)

我们在这里使用它们,在我的NSTimer中打勾:

func tick()
{
    let color = Int(arc4random_uniform(3))
    if(color == 1)
    {
        let newDrop:Drop = Drop(dropType: DropType.blue, xPos: Int(arc4random_uniform(UInt32(screenWidth - 5))))

            drops.append(newDrop)
    } else if(color == 2)
    {
        let newDrop:Drop = Drop(dropType: DropType.red, xPos: Int(arc4random_uniform(UInt32(screenHeight - 5))))

        drops.append(newDrop)
    }
    drawDrops(drops)
}

drawDrops函数是:

func drawDrops(drops:[Drop])
{
    for(var i = 0; i < drops.count; i++)
    {
        print("Hello, World!")
        let button:UIButton = UIButton()
        if(drops[i].dropType == DropType.red)
        {
            button.setImage(UIImage(named: "RedDrop.png"), forState: UIControlState.Normal)
            button.addTarget(self, action: Selector("redPressed:"), forControlEvents: UIControlEvents.TouchUpInside)
        } else if(drops[i].dropType == DropType.blue)
        {
            button.setImage(UIImage(named: "BlueDrop.png"), forState: UIControlState.Normal)
            button.addTarget(self, action: Selector("bluePressed:"), forControlEvents: UIControlEvents.TouchUpInside)
        }
        button.frame = CGRectMake(CGFloat(drops[i].xPos), 10, 20, 20)
        self.view.addSubview(button)
    }
}

有没有人有任何想法?我收到了这个我从未听说过的错误,也不知道该做什么或改变什么:

  

2016-02-03 18:55:26.679 #Project Name#[19295:1104595] Unknown class Mai

     在Interface Builder文件中

。 (lldb)

谢谢!

-Jack

修改 我想出了麦的这一部分&#39;但现在我只是因为“llbd”而崩溃。&#39;控制台字面上没有其他任何说法:

enter image description here

我很确定它是tick()函数中的一些内容,因为当它进入视图控制器并且我的NSTimer设置为1秒时,它需要一秒钟崩溃...

(不确定这是否有帮助或与之有关,但它已将此行选为EXC_BAD_INSTRUCTION:

let newDrop:Drop = Drop(dropType: DropType.red, xPos: Int(arc4random_uniform(UInt32(screenHeight - 5))))

回答吗

不知道为什么会这样,但是我从Drop对象中取出了arc4random并将其变成了自己的变量。我不知道为什么会这样,但是很开心。 : - )

1 个答案:

答案 0 :(得分:1)

您的崩溃是指Interface Builder。我怀疑你已经看到一个不再存在的自定义课程(或者你错误地输入了它 - 我不知道&#39; Mai&#39;是什么)。 / p>

查找它的视图并在“身份检查器”中修复问题。通过错误消息,听起来它与您发布的代码没有任何关系。

enter image description here