【问题标题】:NSFetchRequest Return object first time it is run but not subsequent timesNSFetchRequest 在第一次运行时返回对象,但以后不返回
【发布时间】:2011-11-03 02:39:53
【问题描述】:

我有一组对象,对于这组对象中的每个对象,我都在调用一个内部包含 NSFetchRequest 的方法。此 NSFetchRequest 用于根据传递给方法的 id 获取对象。对于我的每个对象,如果它是第一次在 NSFetchRequest 的谓词中使用 id 时,我调用此方法,它返回正确的对象,之后每次如果再次使用该 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]; 

【问题讨论】:

    标签: core-data nsfetchrequest


    【解决方案1】:

    我发现了我的问题。当我应该将其作为 NSNumber 传递时,我将我的 id 作为 NSString 传递。将其更改为 NSNumber 解决了我的问题。

    【讨论】:

    • 您应该在此处接受您的答案,以便问题显示为已回答。
    【解决方案2】:

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

    这段代码没有什么特别的错误,但是如果你有问题,你应该总是捕获错误返回。这通常会告诉你问题的根源。

    【讨论】:

    • 我应该发布捕获错误的更新代码,但我确实这样做了,但我没有收到错误。
    • 我知道 nil 可能来自哪里在谓词中。
    猜你喜欢
    • 2015-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-05
    相关资源
    最近更新 更多