私はログインしようとしていますが、今はテストをしています。ボタンのタイトルが、このエラーが表示されます:タイプ '(Any) - >()'の値に 'SetTitle'というメンバーがありません。それから、コードとスクリーンショットを残します。Swift3: '(Any) - >()'の値にメンバー 'setTitle'がありません
私はブロックされており、続行できないため、私は助けが必要です。すべての助けに感謝します。ありがとうございました。
そして、これはそれが@IBAction @IBOutletされていないので、あなたが_login_buttonに接続されている問題を持っている私のコード
import UIKit
class LogViewController: UIViewController {
@IBOutlet weak var _username: UITextField!
@IBOutlet weak var _password: UITextField!
@IBAction func _login_button(_ sender: Any) {
let username = _username.text
let password = _password.text
if(username == "" || password == "")
{
return
}
DoLogin(username!, password!)
}
func DoLogin(_ user:String, _ psw:String)
{
let url = URL(string: "http://localhost/bill/userLogin.php")
let session = URLSession.shared
let request = NSMutableURLRequest(url: url!)
request.httpMethod = "POST"
let paramToSend = "username=" + user + "&password=" + psw
request.httpBody = paramToSend.data(using: String.Encoding.utf8)
let task = session.dataTask(with: request as URLRequest, completionHandler: {
(data, response, error) in
guard let _:Data = data else
{
return
}
let json:Any?
do
{
json = try JSONSerialization.jsonObject(with: data!, options: [])
}
catch
{
return
}
guard let server_response = json as? NSDictionary else
{
return
}
if let data_block = server_response["data"] as? NSDictionary
{
if let session_data = data_block["session"] as? String
{
let preferences = UserDefaults.standard
preferences.set(session_data, forKey: "session")
DispatchQueue.main.async {
execute:self.LoginDone()
}
}
}
})
task.resume()
}
func LoginDone()
{
_username.isEnabled = false
_password.isEnabled = false
_login_button.setTitle("Logout", for: .normal)
}
override func viewDidLoad() {
super.viewDidLoad()
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
}
_login_buttonはIBAutletではない –
'_login_button'はボタンのアウトレットではなく、同じ名前のコンセントを指定してボタン名や関数を変更すると、 –
を変更しますそれが機能します。ありがとうございました – amr07