Xcode错误:此类与密钥*

时间:2018-03-19 06:06:58

标签: ios swift xcode

Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIView 0x104908040> `setValue:forUndefinedKey:`]: this class is not **key value coding-compliant** for the key signinbutton.'

构建和启动iOS应用后,我遇到了错误。我看到其他人之前有过这个错误,但在尝试了所有的解决方案后,他们都没有为我工作。据我所知,这不是命名问题,也不是连接错误。我删除了应用程序,重新启动等等。我尝试过使用不同的插座。它是这样的:我的应用程序完美运行,然后我向我的@IBOutlet添加任何类型ViewController,看起来都很好。构建并运行,应用程序加载到空白屏幕,我在控制台中收到该错误。

过去6小时我一直在尝试stackoverflow上的每个解决方案。他们都没有工作。

这是我的ViewController

import UIKit

class UIView: UIViewController {

    @IBOutlet weak var signInButton: UIButton!
    override func viewDidLoad() {
        super.viewDidLoad()
    }

}

我的AppDelegate文件就像默认情况一样。

import UIKit

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

依旧......

为什么这不起作用?

编辑:将课程更改为class HomeViewController: UIViewController无效。

注意:这是 重复的问题。到目前为止,Stack Overflow上没有发布任何解决方案。

4 个答案:

答案 0 :(得分:2)

将控制器的名称更改为某个名称。

class UIView: UIViewController // This is wrong

class HomeViewController: UIViewController:这是对的

同时更新storyboard中的控制器类:在故事板中选择控制器。更改file's owner

答案 1 :(得分:0)

请在视图控制器To Learn more about outlets and Actions

中创建signinbutton的插座

答案 2 :(得分:0)

很简单,如果你的类是 UIView ,可以是子类 UIView 或你的自定义UIView子类。

如果您的类是 UIViewController ,则子类 UIViewController 或您的自定义UIViewController子类。

UIView: UIViewController doesnt make sense to the compiler.

我想提一些背景信息:

x:y表示, x是y的子类,因为你提到它是你的 ViewController 文件,所以为了编译你的代码,你只需要将你的类的名称从UIView更改为自定义名称

UIViewController也是UIKit中的另一个类,就像UIView或UITableView一样,但不是子类的控制器。 当x:y时,y不是x的控制器,但实际上x是控制器,x是Y的子类

答案 3 :(得分:0)

不要使用 UIView 作为类名,因为有一个系统的UIView类。