我有一组对象,对于这个集合中的每个对象,我调用的是一个在其中有一个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];
答案 0 :(得分:1)
你的获取执行有两个nil来源。如果发生错误,executeFretchRequest
将返回nil。如果数组为空,lastObject
将返回nil。
此代码没有任何特别的错误,但如果遇到问题,应始终捕获fetch的错误返回。这通常会告诉你问题的根源。
答案 1 :(得分:1)
我想出了我的问题。当我将它作为NSNumber传递时,我将我的id作为NSString传递。将其更改为NSNumber解决了我的问题。