线程 1:EXC_BAD_ACCESS(代码=1,地址=0x176b)

Thread 1: EXC_BAD_ACCESS (code=1, address=0x176b)

当我尝试制作一个简单的应用程序时,出现此错误:

@IBAction func pickButton(sender: UIButton) {
    numberLabel.text = String(format: "The number is %@", randomNumber) Thread 1: EXC_BAD_ACCESS (code=1, address=0x176b)
}

完整代码如下:

import UIKit

class ViewController2: UIViewController {
    @IBOutlet weak var numberLabel: UILabel!
    @IBOutlet weak var pickButton: UIButton!
    var randomNumber = arc4random_uniform(10000) + 1
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    @IBAction func pickButton(sender: UIButton) {
        numberLabel.text = String(format: "The number is %@", randomNumber)
    }
}

请帮忙,我不知道该怎么办。

randomNumber 是一个整数,不是一个对象。格式说明符 %@ 需要一个对象。使用适当的格式说明符,例如 %u.

有关文档,请参阅 String Format Specifiers

%@ 格式用于打印 Foundation 对象,例如 NSStringNSNumber

var randomNumber = arc4random_uniform(10000) + 1

是一个 UInt32 并且用 %u 打印 "unsigned integer":

numberLabel.text = String(format: "The number is %u", randomNumber)

或者,使用 %@ 并将整数转换为 NSNumber:

numberLabel.text = String(format: "The number is %@", NSNumber(unsignedInt: randomNumber))

但在您的情况下,最简单的解决方案是使用 字符串插值 :

numberLabel.text = "The number is \(randomNumber)"