12
我曾經使用NSCountResultType
來統計我的CoreData上下文中的實體。前一段時間我遇到了countForFetchRequest:error:
,它似乎只用另一種(更可讀的)語法來做同樣的事情。NSCountResultType和countForFetchRequest之間是否有區別:錯誤:就性能而言?
儘管語法上這兩者在性能,內存管理或其他方面是否有區別?
我曾經使用NSCountResultType
來統計我的CoreData上下文中的實體。前一段時間我遇到了countForFetchRequest:error:
,它似乎只用另一種(更可讀的)語法來做同樣的事情。NSCountResultType和countForFetchRequest之間是否有區別:錯誤:就性能而言?
儘管語法上這兩者在性能,內存管理或其他方面是否有區別?
似乎沒有任何區別(只有一個返回NSUInteger
,另一個返回NSArray
包含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聲明
SELECT COUNT(DISTINCT t0.Z_PK) FROM ZEVENT t0