NSFetchRequest返回对象第一次运行但不是后续时间

时间:2011-11-03 02:39:53

标签: core-data nsfetchrequest

我有一组对象,对于这个集合中的每个对象,我调用的是一个在其中有一个NSFetchRequest的方法。此NSFetchRequest用于根据传递给方法的id获取对象。对于我的每个对象,我调用此方法,如果它是第一次在NSFetchRequest的谓词中使用它,它返回正确的对象,每次之后如果再次使用该id,则返回nil。我对此感到非常困惑,无法找到有关为什么会发生这种情况或者我做错了什么的事情。任何帮助将不胜感激。

以下是我的NSFetchRequest的代码:

NSFetchRequest *request = [[NSFetchRequest alloc] init];

[request setEntity:[NSEntityDescription entityForName:@"Styles" inManagedObjectContext:[self managedObjectContext]]];

[request setPredicate:[NSPredicate predicateWithFormat:@"style_id == %@", style_id]];

NSError *error = nil;

Styles *r_styles = [[[self managedObjectContext] executeFetchRequest:request error:&error] lastObject];

[request release]; 

2 个答案:

答案 0 :(得分:1)

你的获取执行有两个nil来源。如果发生错误,executeFretchRequest将返回nil。如果数组为空,lastObject将返回nil。

此代码没有任何特别的错误,但如果遇到问题,应始终捕获fetch的错误返回。这通常会告诉你问题的根源。

答案 1 :(得分:1)

我想出了我的问题。当我将它作为NSNumber传递时,我将我的id作为NSString传递。将其更改为NSNumber解决了我的问题。