【发布时间】:2016-05-03 19:48:02
【问题描述】:
四处搜索似乎并没有提供我立即理解的任何内容。
我正在尝试为一个会打印出 'DOS like' 语句的应用程序制作一个愚蠢的“old skool”加载屏幕。
我当前的代码看起来像这样,但我得到一个 UIResponder, UIApplicationDelegate 错误 - EXE_BAD_ACCESS
我已尝试将其复制到新项目等。仍然遇到相同的错误。
代码如下:
class ViewController: UIViewController {
@IBOutlet weak var loadingLBL: UILabel!
@IBOutlet weak var logoIMG: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
//fades logo image in
logoIMG.alpha = 0
UIView.animateWithDuration(5, animations: {
self.logoIMG.alpha = 1;
})
//array for loading text
var loading = ["Loading please wait.......\n", "Registry , OK!\n", `"Available ram, 256k\n", "BIOS Load... OK\n", "Welcome" ]`
var i = 0
var str: String = ""
var timer = NSTimer()
//delay function for loading array text
func delayFunc() {
str += "\(loading[i])\n"
loadingLBL.text = str
if i == loading.count - 1 {
timer.invalidate()
}
i += 1
}
timer = NSTimer.scheduledTimerWithTimeInterval(1, target: self, selector: Selector(delayFunc()), userInfo: nil, repeats: true)
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
正如我所提到的,我遇到了崩溃,我不知道自己做错了什么。
任何帮助将不胜感激。
【问题讨论】:
-
在您了解如何调试后,使用有关崩溃的具体详细信息更新您的问题,包括完整的错误消息和实际导致错误的行。
-
按照@rmaddy 的建议进行操作之后。我将首先从您的 viewDidLoad 中删除您的 timer、i 和 str 变量以及您的 delayFunc。所有这些都应该在类级别......另外,你的计时器选择器参数应该是#selector(ViewController.delayFunc)
标签: ios arrays swift nstimer uiresponder