【发布时间】: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