Ошибка при попытке войти с правильной информацией - PullRequest
0 голосов
/ 10 апреля 2020

Я пытаюсь создать систему входа для моего приложения. всякий раз, когда я запускаю свое приложение и ввожу правильный адрес электронной почты и пароль, я получаю эту ошибку iHertz[2889:191536] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (_NSZeroData)', я не знаю, связано ли это с моим php файлом или моим файлом swift. ТАКЖЕ я получаю поток 1: сигнал SIGABRT, как только я нажимаю кнопку входа в систему.

Код из моего файла .swift

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data, error == nil else { return }
    print(String(data: data, encoding: .utf8) ?? "not a string")
    do {
        let json = try JSONSerialization.data(withJSONObject: Data(), options: .fragmentsAllowed ) as? NSDictionary //CAUTION: Cast from 'Data' to unrelated type 'NSDictionary' always fails
        if let parseJSON = json {
            let id = parseJSON["id"] as? String
            if (id?.isEmpty)! {
                return
            }                    
            DispatchQueue.main.async {
                let tabBarController = self.storyboard?.instantiateViewController(withIdentifier: "TabBarController") as! UITabBarController
                let appDelegate = UIApplication.shared.delegate
                appDelegate?.window??.rootViewController = tabBarController
            }
        } else {

        }
    } catch {
        print(error)
    }
}
task.resume()

Код формы моего userLogin. php файл

require("iHertzmusic.ini");
require("access.php");
$email = htmlentities($_POST["email"]);
$password = htmlentities($_POST["password"]);
$returnValue = array();

if(empty($email) || empty($password))
{
$returnValue["status"] = "error";
$returnValue["message"] = "Missing required field";
echo json_encode($returnValue);
return;
}

$secured_password = sha1($password); 
$dao = new access(); 
$dao->connect();
$userDetails = $dao->selectUser($email,$secured_password);

if(!empty($userDetails))
{
$returnValue["status"] = "Success";
$returnValue["message"] = "User is registered";

echo json_encode($returnValue);
} else {

$returnValue["status"] = "error";
$returnValue["message"] = "User is not found";
echo json_encode($returnValue);
}

$dao->disconnect();

Любая помощь по этому вопросу будет очень признательна, если пытаться в течение нескольких дней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...