2013-06-30 2 views
12

내 CoreData 컨텍스트의 엔티티를 계산할 때 NSCountResultType을 사용했습니다. 얼마 전에 또 다른 (더 읽기 쉬운) 구문을 사용하여 동일한 작업을 수행하는 것으로 보이는 countForFetchRequest:error:가 발생했습니다.NSCountResultType과 countForFetchRequest 사이에 차이가 있습니까? 오류 : 성능 측면에서?

구문과 관계없이 성능, 메모리 관리 또는 기타 측면에서 차이가 있습니까?

답변

18

아무런 차이가없는 것 같습니다 (NSUInteger을 반환하고 다른 하나는 을 포함하는 NSArray을 반환 함).

출시 인수

 
-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 
관련 문제