0

我正在尝试获取从 tableview 中选择名称并存储在所选数组中的用户列表。

我的代码有什么问题?抱歉,这是我第一次使用 CoreData,所以我真的不知道出了什么问题。

NSFetchRequest *request= [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"AUser"   inManagedObjectContext:_managedObjectContext];
for (id a in selected) {
   NSPredicate *predicate =[NSPredicate predicateWithFormat:@"name==%@",a]; //each user has a name attribute
   [request setEntity:entity];
   [request setPredicate:predicate];

   NSError *error = nil;

   NSArray *array = [_managedObjectContext executeFetchRequest:request error:&error];
   //This array is always empty! Why? What am I doing wrong with the request
}

如果您需要更多信息/进一步解释,请告诉我。

其他需要注意的事项 - 没有警告/错误迹象 - 所有未在此处声明的变量都在其他地方声明

非常感谢!

4

1 回答 1

3

由于您没有收到任何错误响应,因此空数组意味着获取成功完成,但它没有找到任何满足您的谓词的东西。在您的代码中,这意味着selected不包含name可以在您的数据存储中找到的值。

您的代码似乎假设这是一个与您的某些存储对象的值匹配的 sselected数组。如果不是这种情况——如果它包含其他东西,那么可能——一个空集是可以预期的。被宣布为 an的事实让我想知道那里到底有什么。NSStringnameNSStringaid

于 2013-03-06T19:55:22.933 回答