我正在使用核心数据开发一个新的示例应用程序,该应用程序将“CountryNames” 存储到一个实体(名为“CountryID” )中,该实体具有“CountryID” “CountryCode” 。我将200 Countries连同其“名称” “ID” “代码” 一起添加到了实体“国家/地区” (我成功了到现在)。

现在,我想对此实体执行“自动完成” 功能(名为“Country” )。我想获取所有具有Records(在Country Name中命名为cName)的Entity,并从某些Prefix(我输入的名称为UITextFieldtxtCname)开始。

提取请求:

- (IBAction)findCountry:(id)sender
{
    AppDelegate *del = [[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *moc = [del managedObjectContext];

    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Country" inManagedObjectContext:moc];
    NSFetchRequest *fr = [[NSFetchRequest alloc] init];
    [fr setEntity:entity];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"cName beginswith[c] %@",txtCname.text];
    NSError *error = nil;
    NSArray *objects = [moc executeFetchRequest:fr error:&error];
    NSLog(@"object :: %@",objects);
    if (objects.count == 0)
    {
        NSLog(@"No Match Found.");
    }
    else
    {
        con = objects[0];
        NSLog(@"cName :: %@",con.cName);
        NSLog(@"cID :: %@",con.cID);
        NSLog(@"cCode :: %@",con.cCode);
    }
}

我在UITextField中写了“U” 。但是,它不是给我结果以“U” 开头的国家/地区名称。

因此,谁能告诉我我走的路是否正确?

最佳答案

要检查的一些事情:

1)您是否确实在查询中设置了谓词?

[fetchRequest setPredicate:predicate];
2)您谈论在textField中设置U的问题-但您在谓词语句中使用txtCname.text-是正确的字段,确实包含您的起始字母吗?

3)如果不是所需的国家/地区列表,您会从查询中获得什么数据?

关于iphone - 自动完成核心数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16933572/

10-13 04:35
查看更多