核心数据 - 如何检查数据库中是否存在用户?

时间:2012-06-19 06:29:23

标签: ios xcode core-data

所以我正在尝试为我的应用创建一个简单的(如果存在这样一个)登录过程,并且我收到了以下代码块的错误。

 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。'

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

额外奖励:当我在这里发帖(SO)时,如何获得客观c代码突出显示?

1 个答案:

答案 0 :(得分:3)

变化:

NSManagedObject *context = _managedObjectContext;

NSManagedObjectContext *context = _managedObjectContext;

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

应该是

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

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