我正在使用核心数据开发一个新的示例应用程序,该应用程序将“CountryNames” 存储到一个实体(名为“CountryID” )中,该实体具有“CountryID” 和“CountryCode” 。我将200 Countries
连同其“名称” ,“ID” 和“代码” 一起添加到了实体“国家/地区” (我成功了到现在)。
现在,我想对此实体执行“自动完成” 功能(名为“Country” )。我想获取所有具有Records
(在Country Name
中命名为cName
)的Entity
,并从某些Prefix
(我输入的名称为UITextField
的txtCname
)开始。
提取请求:
- (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/