【发布时间】:2018-01-17 19:41:42
【问题描述】:
我是 Xcode 的新手,而且一般都在编码,所以请耐心等待,哈哈。我正在为一个科学展览项目开发我的第一个应用程序,该项目基于选项卡,有两个主要页面。一页包含多个开关;无论打开哪个开关,都决定了另一页上的大按钮播放什么声音或动画。
在查看了几个教程并创建了我的故事板之后,我开始编写将动作连接到按钮和开关的部分。我在有pushButton 函数的行上继续收到以下错误:Only instance methods can be declared @IBAction
我检查了括号和方括号,我认为没有错误,但由于我是初学者,我可能会遗漏一些东西。我的代码粘贴在下面,不胜感激。一旦我弄清楚了这个问题,空的开关功能就会像第一个一样。 :)
import UIKit
import AVFoundation
import AVKit
class FirstViewController: UIViewController {
var audioPlayer = AVAudioPlayer()
var CatSound = URL(fileURLWithPath: Bundle.main.path(forResource: "CatSound", ofType: "mp3")!)
//Mark: Properties
@IBOutlet var pushButton: UIButton!
@IBAction func meowSwitch(_ sender: UISwitch) {
while (sender.isOn == true) {
@IBAction func pushButton(_ sender: UIButton) {
let CatSound = URL(fileURLWithPath: Bundle.main.path(forResource: "CatSound", ofType: "mp3")!)
do {
audioPlayer = try AVAudioPlayer(contentsOf: CatSound)
audioPlayer.prepareToPlay()
} catch {
print("Problem in getting File")
}
audioPlayer.play()
}
}
}
@IBAction func barkSwitch(_ sender: UISwitch) {
}
@IBAction func carSwitch(_ sender: UISwitch) {
}
@IBAction func trainSwitch(_ sender: UISwitch) {
}
@IBAction func helloSwitch(_ sender: UISwitch) {
}
@IBAction func applauseSwitch(_ sender: UISwitch) {
}
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.
}
}
【问题讨论】: