Swift 如何将存储在CoreData中的密码值与用户输入进行比较?
这是登录页面的代码,我想在其中比较输入和存储的数据。 导入UIKitSwift 如何将存储在CoreData中的密码值与用户输入进行比较?,swift,core-data,ios8,xcode6,Swift,Core Data,Ios8,Xcode6,这是登录页面的代码,我想在其中比较输入和存储的数据。 导入UIKit import CoreData class ViewController: UIViewController { @IBOutlet weak var userName: UITextField! @IBOutlet weak var passwordText: UITextField! @IBAction func login(sender: AnyObject) { var appdel : AppDelegat
import CoreData
class ViewController: UIViewController {
@IBOutlet weak var userName: UITextField!
@IBOutlet weak var passwordText: UITextField!
@IBAction func login(sender: AnyObject) {
var appdel : AppDelegate = (UIApplication.sharedApplication().delegate as! AppDelegate)
var context : NSManagedObjectContext = appdel.managedObjectContext!
var request1 = NSFetchRequest(entityName: "User")
NSEntityDescription newUser = [NSEntityDescription entityForName: @"User" inManagedObjectContext:context];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"username == %@ AND password == %@",self.UsernameTextField.Text, self.PasswordTextField.Text];
var result : NSArray = context.executeFetchRequest(request1, error: nil)!
if (result.count > 0 ){
println("true")
}
context.save(nil)
}
你的想法几乎是正确的,只需再多走一步就可以实现魔法。这就是将谓词设置为请求,如下所示
request1.predicate = predicate
你的谓词是正确的。但是你应该考虑你的要求 四点考虑:
- 您不需要
保存上下文
- 您不应该在核心数据中存储凭据。也许钥匙链会适合这个
- 变量应使用
。e、 g符号命名
和notusernameTextField
usernameTextField
- 为什么Objective-C和Swift代码在同一个文件中