Objective c 比较UItextField中的文本和COre data中的数据

Objective c 比较UItextField中的文本和COre data中的数据,objective-c,ios,core-data,Objective C,Ios,Core Data,我有一个带有字符串“login”和“pass”的实体登录程序。我创建了注册,现在我需要比较UItextField中的文本是否与核心数据中的“登录”之一相等。如果创建了这样的登录,我需要比较密码UITextField中的文本,如果它相等,我的应用程序将打开主视图。我对谓词有问题,我不明白如何使用LoginPass*newEntity和fetchResult初始化新实体 更新:好的,我会尽力理解我想要什么。我的英语不好,那就是我的课文不对。我有实体“LoginPass”的核心数据,包括“login”

我有一个带有字符串“login”和“pass”的实体登录程序。我创建了注册,现在我需要比较UItextField中的文本是否与核心数据中的“登录”之一相等。如果创建了这样的登录,我需要比较密码UITextField中的文本,如果它相等,我的应用程序将打开主视图。我对谓词有问题,我不明白如何使用LoginPass*newEntity和fetchResult初始化新实体

更新:好的,我会尽力理解我想要什么。我的英语不好,那就是我的课文不对。我有实体“LoginPass”的核心数据,包括“login”(保存昵称)、“password”(保存登录密码)和一些数据。我需要检查UITextField“login”中的昵称是否包含在核心数据中。如果没有这样的登录将出现警报,如果这样的登录有核心数据,我会检查密码,成功后自动回复将出现主视图

//from standart singleton Appdelegate i delegated manageObjectContext
AppDelegate * appDelegate = (AppDelegate *) [[UIApplication sharedApplication]delegate];
NSManagedObjectContext *context = appDelegate.managedObjectContext;
//assigning. Can I use myEntity in my further mode of action to change datas in entity
NSEntityDescription * myEntity = [NSEntityDescription entityForName:@"LoginPass" inManagedObjectContext:context];
NSFetchRequest * fetchRequest = [[NSFetchRequest alloc]init];
//I need search in Core Data with nickname that's in UITextField "login"
NSPredicate *predicateMe = [NSPredicate predicateWithFormat:@"login==%@",login.text];
//login.text - text from UITextField, myEntity.login - string value in key "login" in COre Data
//Or i must write:
NSPredicate *predicateMe = [NSPredicate predicateWithFormat:@"%@ LIKE %@",myEntity.login,login.text];
fetchRequest.predicate = predicateMe;
[fetchRequest setEntity:myEntity];
[fetchRequest setFetchBatchSize:20];
NSSortDescriptor * sortirovka = [[NSSortDescriptor alloc] initWithKey:@"login" ascending:YES];
NSArray * sortArray = [NSArray arrayWithObjects:sortirovka,nil];
[fetchRequest setSortDescriptors:sortArray];
NSFetchedResultsController * fetchResult = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest managedObjectContext:context sectionNameKeyPath:nil cacheName:@"Login"];
//thanks for this part of code, i understand that is must be
 NSError *error = nil;
if (![fetchResults performFetch:&error]) {
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
    abort();
}
//can i use myEntity for changing datas in my "LoginPass" or i need create:
LoginPass *newEntity = ?;

但我不知道如何创建LoginPass*newEntity来更改用户witj昵称的数据,输入“login”字段,然后执行提取:

NSError* error;
if(![fetchResult performFetch  : &error])
{
    NSLog(@"Failed with error: %@",error);
    return;  // do whatever to exit from the method (return the proper value
             // if it doesn't return void).
}
NSArray* fetchedObjects=[fetchResult fetchedObjects];
// Do this assertion if you expect that this will fetch no less
// and no more than one object:
NSAssert(fetchedObjects.count==1, @"Zero or too many objects"); 
NSManagedObject* newEntity= fetchedObjects[0];
我不确定,因为我还没有测试过它,也没有完全理解你的代码。但我认为它应该可以工作


更多信息:。

谢谢=)但是我可以用这样的代码创建我的实体吗:LoginPass*newEntity=fetchedObjects[0];对不起,你能给我解释一下吗,对于新手来说,如果我们在抓取后有1个结果,我们会写fetchObjects[0]?如果我有一些结果呢=(我仍然没有提供在核心数据中检查模拟昵称的功能。在这里,我假设您获取一个名称,因为它是用户名/密码。但是它可以获取多个值。