Я пытаюсь создать простое приложение для хранения и извлечения пользовательских данных.
Иметь RegisterViewController.swift с полями (name, loginUsername, loginPassword, photo), которые пользователи вводят для регистрации.
У меня есть класс User.swift для сохранения этой информации в объекте
Используя CoreData, я настроил сущность «Пользователи» с 4 полями в качестве атрибутов.
Я сослался на следующеессылки для сохранения и извлечения данных в таблицу Users.
https://medium.com/xcblog/core-data-with-swift-4-for-beginners-1fc067cca707. https://www.bobthedeveloper.io/blog/beginner-guide-to-core-data-in-swift
Однако я не вижу данных, сохраняемых или извлекаемых при отладке.Также я не вижу никаких исключений.
Ниже приведен фрагмент кода
let name = self.name.text;
let loginUsername = self.loginUsername.text;
let loginPassword = self.loginPassword.text;
let photo = self.photo.image;
print("Setting user data in the User object");
user = User(name: name!, loginUsername: loginUsername!, loginPassword: loginPassword!, photo: photo)!;
print("store data in DB")
//Setup delegate and context
let appDelegate = UIApplication.shared.delegate as! AppDelegate;
let context = appDelegate.persistentContainer.viewContext
let entity = NSEntityDescription.entity(forEntityName: "Users", in: context);
let newUser = NSManagedObject(entity: entity!, insertInto: context)
//Set values for the attributes
newUser.setValue(name, forKey: "name")
newUser.setValue(loginUsername, forKey: "loginUsername")
newUser.setValue(loginPassword, forKey: "loginPassword")
//TODO: store the photo
//Save data
do {
print("Trying to same")
try context.save()
} catch {
print("Failed to save user")
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
//Method 1: to get Users after saving
do {
usersSaved = try context.fetch(Users.fetchRequest())
} catch {
print("Failed to fetch users")
let nserror = error as NSError
fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
}
//Method 2: to get Users after saving
var usersSaved: [Users] = []
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users");
request.returnsObjectsAsFaults = false
do {
let result = try context.fetch(request)
print("Trying to fetch")
for data in result as! [NSManagedObject] {
print(data.value(forKey: "name") as! String)
}
} catch {
print("Failed")
}
Это мой класс User.swift
class User {
//MARK: Properties
var name: String;
var loginUsername: String;
var loginPassword: String;
var photo: UIImage? = nil;
//MARK: Initialization
init?(name: String, loginUsername: String, loginPassword: String, photo: UIImage?) {
//Initialization should fail if there is no name or username or password
if (name.isEmpty || loginUsername.isEmpty || loginPassword.isEmpty) {
return nil;
}
//Initialize stored properties
self.name = name;
self.loginUsername = loginUsername;
self.loginPassword = loginPassword;
self.photo = photo;
}
}
Я искал ответы в Интернетено не смог понять это.Любые указатели или предложения действительно помогут мне прогрессировать ..