计算核心数据中具有特定值的实体

发布于 2024-11-25 06:51:05 字数 337 浏览 1 评论 0原文

我有一个具有某些属性的实体。我已经填充了我的 tabes(SQLite 表) 在一个属性(我称之为属性1)中,我有一个布尔值,在使用我的应用程序期间发生变化。

如何返回 Attribute1 值为 YES 的实体数量?

我已经阅读了“核心数据教程”和“谓词编程指南”,但我不明白如何继续..

    NSPredicate *predicate= [NSPredicate predicateWithFormat:@"Attribute1 == %@",[NSNumber numberWithBool:YES]];

我已经尝试过这个,然后呢?似乎不起作用..

I have an Entity with some Attribute. I have my tabes already populates(SQLite table)
In one Attribute (i'll call Attribute1) i have a bool value, changing during use of my app.

How can i return the count of my Entities with Attribute1 value YES?

I've already read "Core data Tutorial" and "Predicate Programing Guide" but i don't understand how to proceed..

    NSPredicate *predicate= [NSPredicate predicateWithFormat:@"Attribute1 == %@",[NSNumber numberWithBool:YES]];

I've tried with this, and then? it seems not working..

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

内心旳酸楚 2024-12-02 06:51:05

最好的选择是使用 countForFetchRequest 方法。设置您的谓词和获取请求,但不执行实际的获取,而是执行 countForFetchRequest,如下所示:

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

NSPredicate *predicate = 
    [NSPredicate predicateWithFormat:@"Attribute1 == %@",
        [NSNumber numberWithBool:YES]];

[request setPredicate:predicate];

NSUInteger count = [myManagedObjectContext countForFetchRequest:request error:nil];

您可以在 Apple API 文档中找到更多信息:

countForFetchRequest:错误:
返回如果给定的获取请求已传递给executeFetchRequest:error:,则该请求将返回的对象数。

  • (NSUInteger)countForFetchRequest:(NSFetchRequest )请求错误:(NSError *)错误
    参数
    要求
    指定提取搜索条件的提取请求。
    错误
    如果执行获取时出现问题,则返回时包含描述问题的 NSError 实例。
    返回值
    如果给定的获取请求已传递给executeFetchRequest:error:,则该请求将返回的对象数量;如果发生错误,则为 NSNotFound。

可用性
适用于 iOS 3.0 及更高版本。
申报于
NSManagedObjectContext.h

The best bet is to use the countForFetchRequest method. Set up your predicate and fetch request, but instead of doing the actual fetch, execute countForFetchRequest as follows:

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

NSPredicate *predicate = 
    [NSPredicate predicateWithFormat:@"Attribute1 == %@",
        [NSNumber numberWithBool:YES]];

[request setPredicate:predicate];

NSUInteger count = [myManagedObjectContext countForFetchRequest:request error:nil];

You can find more info in the Apple API Docs:

countForFetchRequest:error:
Returns the number of objects a given fetch request would have returned if it had been passed to executeFetchRequest:error:.

  • (NSUInteger)countForFetchRequest:(NSFetchRequest )request error:(NSError *)error
    Parameters
    request
    A fetch request that specifies the search criteria for the fetch.
    error
    If there is a problem executing the fetch, upon return contains an instance of NSError that describes the problem.
    Return Value
    The number of objects a given fetch request would have returned if it had been passed to executeFetchRequest:error:, or NSNotFound if an error occurs.

Availability
Available in iOS 3.0 and later.
Declared In
NSManagedObjectContext.h

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文