【问题标题】:Does anyone know what is wrong with this code?有谁知道这段代码有什么问题?
【发布时间】:2016-05-13 10:11:10
【问题描述】:

我要直奔主题了。我的应用程序崩溃了,我不知道它出了什么问题。我最有可能不正确的是屏幕尺寸的部分,但我真的不这么认为。这是我的屏幕尺寸变量:

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] 未知类 Mai

在界面生成器文件中。 (lldb)

谢谢!

-杰克

编辑: 我想出了“Mai”的部分,但现在我只用“llbd”就崩溃了。控制台字面上什么也没说:

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

(不确定这是否有帮助或与任何事情有关,但它将此行选为 EXC_BAD_INSTRUCTION:

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

)

回答?

不知道为什么会这样,但我从他的 Drop 对象中提取了 arc4random 并将其放入自己的变量中。我不知道为什么这有效,但很高兴。 :-)

【问题讨论】:

  • 看起来你在那里有一个断点。只需禁用或删除它。左侧是蓝色箭头(带行号)
  • 想通了;这不是断点。
  • 你的屏幕截图是一个断点
  • 嗯,我猜是

标签: ios arrays swift uibutton swift2


【解决方案1】:

您的崩溃是指 Interface Builder。我怀疑您的视图包含不再存在的自定义类(或者您输入错误 - 我不知道“Mai”是什么)。

查找它是哪个视图并在“身份检查器”中解决问题。根据错误消息,听起来它与您发布的代码没有任何关系。

【讨论】:

    猜你喜欢
    • 2012-09-08
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    • 1970-01-01
    • 2015-07-06
    • 1970-01-01
    • 2021-07-14
    相关资源
    最近更新 更多