2

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

 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,可以在以下链接中完整查看。如果重要的话,我正在使用库存样板核心数据代码。

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

4

1 回答 1

3

改变:

NSManagedObject *context = _managedObjectContext;

NSManagedObjectContext *context = _managedObjectContext;

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

应该

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

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

于 2012-06-19T06:34:11.170 回答