Ios Swift:在类型'上使用实例成员;ViewController';;您是否打算使用类型为';ViewController';相反

Ios Swift:在类型'上使用实例成员;ViewController';;您是否打算使用类型为';ViewController';相反,ios,xcode,swift3,Ios,Xcode,Swift3,正如标题所示,Swift告诉我,我正在调用ViewController类的成员,而不是对象。我看过很多其他的帖子,但都不知道我错在哪里 func endEventSteps() { UserDefaults.standard.set(false, forKey: "hasLoggedIn") UserDefaults.standard.set(nil, forKey: "usersEmail") UserDefaults.standard.set(nil, forKey:

正如标题所示,Swift告诉我,我正在调用ViewController类的成员,而不是对象。我看过很多其他的帖子,但都不知道我错在哪里

func endEventSteps() {
    UserDefaults.standard.set(false, forKey: "hasLoggedIn")
    UserDefaults.standard.set(nil, forKey: "usersEmail")
    UserDefaults.standard.set(nil, forKey: "usersPassword"
    performSegue(withIdentifier: "backToLoginScreen", sender: self)
}
let alertController = UIAlertController(title: "End event", message: "Are you sure you'd like to end this event?", preferredStyle: UIAlertControllerStyle.alert)
let DestructiveAction = UIAlertAction(title: "End",
                                          style: UIAlertActionStyle.destructive,
                                          handler: {(alert: UIAlertAction!) in endEventSteps()})
编辑:我在最后一行遇到以下错误:“在“InfoSubmissionViewController”类型上使用实例成员“endEventSteps”;您的意思是改为使用“InfoSubmissionViewController”类型的值吗?”。当我将简单命令作为处理程序(例如print(“foo”)时,代码编译得很好


以上所有代码都在自定义ViewController类“InfoSubmissionViewController”中。

假设您有一个名为
DestructiveAction的控制器类,则

let DestructiveAction = ...
应该是

let destructiveAction = ...

你的错误在哪一行?我注意到
UserDefaults.standard.set(nil,forKey:“usersPassword”
缺少右括号。这可能只是复制粘贴问题。错误出现在最后一行,我在那里设置了endEventSteps()作为处理程序。斯威夫特告诉我:在“InfoSubmissionViewController”类型上使用实例成员“endEventSteps”;你是不是想使用“InfoSubmissionViewController”类型的值?你在哪里调用alertController?@NateMan在iAction中对按钮执行该代码是误导性的,因为它假装在c上的顶层执行将导致(不同)编译器错误的lass。