我曾经用来NSCountResultType
计算我的 CoreData 上下文中的实体。不久前,我遇到了countForFetchRequest:error:
它似乎只用另一种(更易读的)语法做同样的事情。
尽管有语法,这两者在性能、内存管理或其他方面有什么区别吗?
我曾经用来NSCountResultType
计算我的 CoreData 上下文中的实体。不久前,我遇到了countForFetchRequest:error:
它似乎只用另一种(更易读的)语法做同样的事情。
尽管有语法,这两者在性能、内存管理或其他方面有什么区别吗?
似乎根本没有区别(只有一个返回 an NSUInteger
,另一个返回NSArray
包含 an NSNumber
)。
设置启动参数
-com.apple.CoreData.SQLDebug 3
表明两者
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
NSUInteger count = [context countForFetchRequest:request error:NULL];
和
NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Event"];
[request setResultType:NSCountResultType];
NSArray *result = [context executeFetchRequest:request error:NULL];
执行完全相同的 SQLite 语句
从 ZEVENT t0 中选择计数(DISTINCT t0.Z_PK)