1
タイトルが示唆するように、Swiftは、オブジェクトではなくViewControllerクラスのメンバを呼び出していることを伝えています。私は他の多くの投稿を見てきて、どこが間違っているのか分からない。Swift: 'ViewController'タイプのインスタンスメンバーの使用。代わりに '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()})
編集:私は最後の行に次のエラーを取得:「タイプのインスタンスメンバの使用 『endEventSteps』 『をInfoSubmisionViewController』;あなたは型の値を使用することを意味した 『InfoSubmisionViewController』の代わりに?」。 ( "foo")のような単純なコマンドをハンドラとして配置するとコードがコンパイルされます。
上記のコードはすべて、カスタムInfoControllerクラス 'InfoSubmissionViewController'内にあります。
あなたのエラーがで何行である必要があり、その後、あなたは
DestructiveAction
という名前のコントローラクラスを持っていると仮定すると?私は 'UserDefaults.standard.set(nil、forKey:" usersPassword "'は閉じ括弧がないことに気付きます。 –これはおそらく単なるコピー・ペーストの問題です。エラーは最後の行でendEventSteps()をあなたは、 'InfoSubmisionViewController'タイプのインスタンスメンバー 'endEventSteps'を使用しますか? –
ここで、alertControllerを呼び出していますか? –