2017-01-18 11 views
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'内にあります。

+1

あなたのエラーがで何行である必要があり、その後、あなたはDestructiveActionという名前のコントローラクラスを持っていると仮定すると?私は 'UserDefaults.standard.set(nil、forKey:" usersPassword "'は閉じ括弧がないことに気付きます。 –

+0

これはおそらく単なるコピー・ペーストの問題です。エラーは最後の行でendEventSteps()をあなたは、 'InfoSubmisionViewController'タイプのインスタンスメンバー 'endEventSteps'を使用しますか? –

+0

ここで、alertControllerを呼び出していますか? –

答えて

2

let DestructiveAction = ... 

let destructiveAction = ... 
関連する問題