3
swift3 noob在这里所以请原谅我,如果这是一个愚蠢的问题。代码重复 - swift3
我几次遇到过这个问题,但一直无法解决它。我如何避免下面的代码重复。
@IBAction func logOutButton(_ sender: Any) {
var userEntered = usernameText.text!
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
request.predicate = NSPredicate(format: "username = %@", "xyz")
do {
let results = try context.fetch(request)
} catch {
print ("Delete failed")
}
}
@IBAction func submitButton(_ sender: Any) {
var users = [String]()
var userEntered = usernameText.text!
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
let newValue = NSEntityDescription.insertNewObject(forEntityName: "Users", into: context)
newValue.setValue(userEntered, forKey: "username")
request.returnsObjectsAsFaults = false
do {
try context.save()
正如你可以看到下面的代码在两个按钮中都重复。我怎样才能避免这种情况?我试图用一种方法来编写它,但我必须做出错误的事情,并引发很多错误。
var userEntered = usernameText.text!
let appDelegate = UIApplication.shared.delegate as! AppDelegate
let context = appDelegate.persistentContainer.viewContext
let request = NSFetchRequest<NSFetchRequestResult>(entityName: "Users")
谢谢
请出示你试过,你做了什么错误。 – shallowThought
为什么不把你正在使用的代码多次放入一个函数然后调用该函数? –
使用'NSManagedObject'子类,它避免了很多样板代码。然后你可以写'let request = Users.fetchRequest()' – vadian