Core Data - 如何检查用户是不是存在于数据库中?

Posted

技术标签:

【中文标题】Core Data - 如何检查用户是不是存在于数据库中?【英文标题】:Core Data - how to check if user exists in database?Core Data - 如何检查用户是否存在于数据库中? 【发布时间】:2012-06-19 06:29:22 【问题描述】:

所以我正在尝试为我的应用创建一个简单的(如果存在的话)登录过程,但下面的代码块出现错误。

 NSManagedObject *context = _managedObjectContext;

NSFetchRequest *request= [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Account"   inManagedObjectContext:context];
NSPredicate *predicate =[NSPredicate predicateWithFormat:@"username==%@",self.textFieldUsername.text];
[request setEntity:entity];
[request setPredicate:predicate];

NSError *error = nil;

// Below line is giving me error

NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];
if (array != nil) 
    NSUInteger count = [array count]; // may be 0 if the object has been deleted.
    NSLog(@"Username may exist, %@",count);


else 
    NSLog(@"Username does not exist.");

`

上面的代码现在是在用户点击登录按钮时运行的。

Xcode 给我一个错误: “NSManagedObject”没有可见的@interface 声明选择器“executeFetchRequest:error”。

当我阅读上述声明时,我觉得它只是 希腊语。我正在处理的文件的名称是 ViewControllerWelcome.m,可以在以下link 上查看完整的文件。如果重要的话,我使用的是库存样板核心数据代码。

奖励:当我在此处发布 (SO) 时,如何获得 Objective-c 代码突出显示?

【问题讨论】:

【参考方案1】:

变化:

NSManagedObject *context = _managedObjectContext;

NSManagedObjectContext *context = _managedObjectContext;

NSArray *array = [managedObjectContext executeFetchRequest:request error:&error];

应该是

NSArray *array = [context executeFetchRequest:request error:&error];

附: 如果您希望用户名搜索不区分大小写,请使用“username ==[c] %@”作为谓词...

【讨论】:

没有更多的编译错误,看看它运行时会发生什么会很有趣。非常感谢您的帮助。

以上是关于Core Data - 如何检查用户是不是存在于数据库中?的主要内容,如果未能解决你的问题,请参考以下文章

检查Core Data中是不是存在对象[关闭]

iPhone 上是不是存在 Core Data?或者您将如何在 iPhone 上保存数据?

在 Core Data 中,如何检查错误是不是是由“磁盘已满”引起的?

如何在 Core Data 中检查给定用户名的密码? [关闭]

Swift - 如何检查现有的 Core Data Store iOS

Core Data 默认使用线程吗?