应用程序崩溃,即使Xcode与Swift 2中的代码除了

时间:2016-02-07 02:14:13

标签: ios swift debugging uicolor sigabrt

我尝试了很多不同的东西并且对此进行了很多研究,但我似乎无法解决这个问题。

下面的代码编译正确,构建成功,但几秒后 Xcode 打开备份,AppDelegate文件以经典打开线程1信号SIGABRT ,应用程序无法正常工作。

顺便说一句,应用程序不应该做任何复杂的事情,只是改变backgroundColor的颜色。

请让我知道如何改变它并使其变得更好。

import UIKit

class ViewController: UIViewController {
    func changeBackround() {
        self.view.backgroundColor = UIColor.randomColor()
    }
    override func viewDidLoad() {
        NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: Selector("changeBackground"), userInfo: nil, repeats: true)   
    }    
}

extension UIColor {
    static func randomColor() -> UIColor {
        let red = CGFloat(drand48())
        let green = CGFloat(drand48())
        let blue = CGFloat(drand48())
        return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
    }
}

1 个答案:

答案 0 :(得分:2)

拼写错误的函数名changeBackround,在您放置Selector("changeBackground")的选择器中,错误是因为它没有找到选择器的对应函数。

试试这个。

import UIKit

class ViewController: UIViewController {


    func changeBackground() {
        self.view.backgroundColor = UIColor.randomColor()
    }

    override func viewDidLoad() {

        NSTimer.scheduledTimerWithTimeInterval(5, target: self, selector: Selector("changeBackground"), userInfo: nil, repeats: true)

    }

}

extension UIColor {
    static func randomColor() -> UIColor {
        let red = CGFloat(drand48())
        let green = CGFloat(drand48())
        let blue = CGFloat(drand48())
        return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
    }
}