我试图按下按钮打开Segue。在我添加此代码之前,它已经有效但在添加代码(通过单击按钮触发视频的代码)之后,代码崩溃了我的应用程序,出现以下错误:
由于未捕获的异常'NSUnknownKeyException原因:'[setValue:forUndefinedKey:]:此类与密钥fatB不符合密钥值编码。
我搜索了错误,我理解它的意思是Xcode
找不到某个名字(fatB)
但我无法理解其余部分。
以下是我的代码:
viewcontroller1代码:
import UIKit
class ViewController: UIViewController {
@IBAction func movieB(_ sender: Any) {
performSegue(withIdentifier: "firstsegue", sender: self)
}
@IBOutlet weak var winnerLabel: UILabel!
}
viewcontroller2代码:
import UIKit
import AVKit
import AVFoundation
class ViewController2: UIViewController {
func forbutton(name : String, type : String) {
func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
playVideo(name: name, type: type)
}
}
private func playVideo(name : String, type : String) {
guard let path = Bundle.main.path(forResource: "\(name)", ofType:"\(type)") else {
debugPrint("video not found")
return
}
let player = AVPlayer(url: URL(fileURLWithPath: path))
let playerController = AVPlayerViewController()
playerController.player = player
present(playerController, animated: true) {
player.play()
}
}
@IBAction func fatB(_ sender: Any) {
forbutton(name: "fatB", type: "mp4")
}
@IBAction func coderB(_ sender: Any) {
forbutton(name: "birdC", type: "mp4")
}
@IBAction func clashB(_ sender: Any) {
forbutton(name: "clash", type: "mp4")
}
}
答案 0 :(得分:1)
检查连接检查员。有一个名为fatB的IBOutlet。从那里删除
它可能是一个UIButton
答案 1 :(得分:0)
可能是因为:
1)您已从代码中删除IBOutlet
,但未从Controller's scene
中的Storyboard
删除。
2)您可能更改了IBOutlet
引用变量的名称。
请检查故事板中的Controller's scene
并删除未使用的IBOutlet
引用,或使用新的引用变量名称进行更新。