次のコードを使用して、AppDelegate クラスのメソッドを呼び出そうとしています。コンパイラは、入力した ] 文字の数に関係なく、「Expected ]」エラーを表示しています。
ここで何が間違っていますか?
[[(MyAppDelegate *)[[UIApplication sharedApplication] delegate] authenticateUser(usernameField.text, passwordField.text)]];
次のコードを使用して、AppDelegate クラスのメソッドを呼び出そうとしています。コンパイラは、入力した ] 文字の数に関係なく、「Expected ]」エラーを表示しています。
ここで何が間違っていますか?
[[(MyAppDelegate *)[[UIApplication sharedApplication] delegate] authenticateUser(usernameField.text, passwordField.text)]];
主な問題は、メソッドではなく関数を呼び出そうとするアプリ デリゲートがコードに含まれていることです。
[[(MyAppDelegate *)[[UIApplication sharedApplication] delegate] authenticateUser(usernameField.text, passwordField.text)]];
書き換える(そして余分なものを削除する[]
:
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]
[appDelegate authenticateUser(usernameField.text, passwordField.text)];
appDelegate はメソッドを期待していますが、関数を見つけていることがわかります。
メソッドに変更authenticateUser
します。
元:
MyAppDelegate *appDelegate = (MyAppDelegate *)[[UIApplication sharedApplication] delegate]
[appDelegate authenticateUser:usernameField.text pass:passwordField.text];