Mar*_*ark 3 cocoa core-data objective-c
这是我的数据模型的一个例子:
如何计算特定邮箱的未读邮件数?
我尝试在数据模型编辑器中创建一个获取请求,但我无法为邮箱添加条件,尽管邮件实体具有为其拥有邮箱定义的关系.
我知道在处理Core Data时我不应该在SQL中思考,但是感觉很自然,所以说:
SELECT count(*) FROM Messages WHERE unread = 1 AND mailboxId = 12345
Run Code Online (Sandbox Code Playgroud)
除了循环特定邮箱的每条消息之外,还有其他方法可以获取未读消息吗?
您想要在不获取对象的情况下进行计数,因为这需要更长的时间:
- (NSUInteger)countForFetchRequest:(NSFetchRequest *)request error:(NSError **)error
Run Code Online (Sandbox Code Playgroud)
返回给定的获取请求如果已传递给executeFetchRequest则返回的对象数:错误:
您还需要为获取请求(即WHERE子句)添加谓词.
例如
NSFetchRequest * request = [[NSFetchRequest alloc] init];
[request setEntity: [NSEntityDescription entityForName:@"Messages" inManagedObjectContext:context]];
[request setPredicate:[NSPredicate predicateWithFormat: @"(unread == 1 && mailboxId == %i)", mailboxId]];
Run Code Online (Sandbox Code Playgroud)
(我可能有我的谓词语法错误......但你应该明白这个想法)
| 归档时间: |
|
| 查看次数: |
1420 次 |
| 最近记录: |