J'ai créé une page d'enregistrement dans laquelle il y a un nom d'utilisateur, un mot de passe, un mot de passe de confirmation, un identifiant d'email, un numéro de mobile. ce sont les détails, je suis nouveau à Swift
et je veux enregistrer les détails de l'utilisateur pour la page d'inscription dans l'application en utilisant NSUserDefaults
pls m'aider et aussi comment postuler demande.Comment enregistrer l'utilisateur dans NSObject
Répondre
pour enregistrer les données
UserDefaults.standard.set(username, forKey: "username")
UserDefaults.standard.synchronize()
Pour obtenir des données
UserDefaults.standard.value(forKey: "username")
Pour poster des données, vous pouvez utiliser Alamofire
Créer un fichier pod ajouter
pod 'Alamofire', '~> 4.0'
Dans votre viewcontroller
import Alamofire
Créer func
funcLogin() {
let url = "http://example.com"
let parameters : [String:Any] = ["username": UserDefaults.standard.value(forKey: "username") as! String,
"password": UserDefaults.standard.value(forKey: "password") as! String,
"email":UserDefaults.standard.value(forKey: "email") as! String]
Alamofire.request(url,method:.post, parameters: parameters).validate(contentType: ["application/json"])
.responseJSON{ response in
switch response.result {
case .success:
let statusCode = (response.response?.statusCode)!
print("HTTP code @apiGetUser: \(statusCode)")
print("yoo")
print(response.result.value!)
// ...
case .failure(let error):
print(error)
// print("yo")
break
// ...
}
}
Vous pouvez également utiliser cette
Marque extention de UIViewController
extension UIViewController{
class user {
var user_name : String
var user_Email : String
var user_password : String
var item_Mobile : String
init(user_name : String, user_Email : String, user_password : String, item_Mobile : String) {
self.user_name = user_name
self.user_Email = user_Email
self.user_password = user_password
self.item_Mobile = item_Mobile
}
}
Dans ViewController
var userData = [user]()
si de vouloir accéder à l'échelle mondiale
static var userData = [user]()
Pour ajouter des valeurs utilisent
// Pour locale
userData.append(cartItem(user_name: "Demo1",
user_Email: "[email protected]",
user_password: "hhhhhhh",
item_Mobile: "9889878888"))
// Pour l'utilisation globale
viewControllername.userData.append(cartItem(user_name: "Demo1",
user_Email: "[email protected]",
user_password: "hhhhhhh",
item_Mobile: "9889878888"))
pour accéder aux données
userData[i]. user_name
Non, * pour obtenir des données * dans le cas d'une chaîne c'est '.string (forKey:' pour les autres objets '.object (forKey:' mais ** jamais ** '.value (forKey: ' – vadian
vous pouvez faire comme ceci UserDefaults.standard.value (forKey:" username ") as! String –
Vous pouvez, mais les méthodes KVC ont une fonctionnalité spéciale.Utilisez-les seulement si vous avez explicitement besoin de KVC. – vadian
Pour définir des données dans UserDefaults-
UserDefaults.standard.set("your value", forKey: "your key")
UserDefaults.standard.synchronize()
Pour obtenir des données dans UserDefaults
UserDefaults.standard.value(forKey: "your key")
post Exemple
func postAction(_ sender: Any) {
let Url = String(format: "your url")
guard let serviceUrl = URL(string: Url) else { return }
// let loginParams = String(format: LOGIN_PARAMETERS1, "test", "Hi World")
let parameterDictionary = ["username" : "Test", "password" : "123456"]
var request = URLRequest(url: serviceUrl)
request.httpMethod = "POST"
request.setValue("Application/json", forHTTPHeaderField: "Content-Type")
guard let httpBody = try? JSONSerialization.data(withJSONObject: parameterDictionary, options: []) else {
return
}
request.httpBody = httpBody
let session = URLSession.shared
session.dataTask(with: request) { (data, response, error) in
if let response = response {
print(response)
}
if let data = data {
do {
let json = try JSONSerialization.jsonObject(with: data, options: [])
print(json)
}catch {
print(error)
}
}
}.resume()
}
N'oubliez pas d'ajouter 'UserDefaults.standard.synchronize()' après avoir défini les valeurs sur 'UserDefault' –
pouvez-vous me dire comment enregistrer en utilisant tous les détails de la page de registre dans la classe NSObject et comment utiliser dans une classe particulière @Abhishek Jain –
Ne pas, ne pas, Ne stockez pas les mots de passe dans UserDefaults, c'est à cela que sert le keychain. Dites-moi à quelles applications vous avez fait cela et je m'assurerai de ne pas les utiliser. – Abizern
Copie possible de [iOS: Comment enregistrer nom d'utilisateur/mot de passe dans une application?] (Https://stackoverflow.com/questions/6972092/ios-how-to-store-username-password-within-an-app) – Abizern
ok @Abizern je vais faire –