我有以下情况。我有一个使用 Core Data 处理数据的应用程序。我有一个名为“Brothers”的实体,它有 3 个属性:姓名、状态、年龄。
假设我的数据库中有 1 条记录:
-Name ==> Joe (String)
-Status ==> Married (String)
-Age ==> 28 (Integer)
我有一个 UIlabel 一个 UItextfield 和一个按钮。我希望能够在 UItextfield 上键入名称(在本例中为 Joe),按下按钮并在 UILabel 中显示年龄(在本例中为 28)。我还想将年龄值存储到一个变量类型的整数中,以便以后可以用它进行一些计算。
在我在按钮内的代码下方。
NSEntityDescription *entitydesc = [NSEntityDescription entityForName:@"Brothers" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:entitydesc];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age %d", [self.age.text integerValue]];
[request setPredicate:predicate];
NSError *error;
NSArray *integer = [context executeFetchRequest:request error:&error];
self.displayLabel.text = integer;
更新#1
我更新了按钮内的代码,现在我可以按名称搜索并显示年龄。我仍在考虑将年龄作为整数存储到变量中,以便以后使用。
NSEntityDescription *entitydesc = [NSEntityDescription entityForName:@"Brothers" inManagedObjectContext:context];
NSFetchRequest *request = [[NSFetchRequest alloc]init];
[request setEntity:entitydesc];
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"firstname like %@", self.firstnameTextField.text];
[request setPredicate:predicate];
NSError *error;
NSArray *integer = [context executeFetchRequest:request error:&error];
if(integer.count <= 0){
self.displayLabel.text = @"No records found";
}
else {
NSString *age;
for (NSManagedObject *object in integer) {
age = [object valueForKey:@"age"];
}
self.displayLabel.text = [NSString stringWithFormat:@"age: %@",age];
}
}