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 - 如何检查用户是不是存在于数据库中?的主要内容,如果未能解决你的问题,请参考以下文章
iPhone 上是不是存在 Core Data?或者您将如何在 iPhone 上保存数据?
在 Core Data 中,如何检查错误是不是是由“磁盘已满”引起的?
如何在 Core Data 中检查给定用户名的密码? [关闭]