2010-01-22 38 views
37

Tôi đang sử dụng NSFetchedResultsController trong ứng dụng iPhone và tự hỏi có cách nào dễ dàng nhận tổng số hàng được trả về trong tất cả các phần hay không.Dữ liệu lõi NSFetchedResultsController - Tổng số bản ghi trả về

Thay vì nhận được [[fetchedResultsController sections] count] và sau đó lặp qua từng phần để đếm, có thể thực hiện trong một dòng không?

Cảm ơn!

Trả lời

107

dòng này trả về tổng số đối tượng lấy:

[fetchedResultsController.fetchedObjects count] 
+1

Cảm ơn! Tôi biết nó phải là một cái gì đó đơn giản như thế! –

+2

Đối với bất kỳ ai tự hỏi, nếu bạn đang sử dụng thuộc tính kích thước lô tìm nạp của Yêu cầu tìm nạp, việc truy cập phương pháp tính ở trên không được gây lỗi cho tất cả các đối tượng. Tham khảo: https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/CoreDataFramework/Classes/NSFetchRequest_Class/NSFetchRequest.html – Senseful

+3

@Senseful nó nói nó sẽ không làm hỏng các đối tượng ở đâu? Nó không rõ ràng từ các tài liệu. Đây có phải là thứ bạn đã thử nghiệm không? – bobics

12

Làm thế nào về việc này?

[fetchedResultsController.sections.valueForKeyPath: @"@sum.numberOfObjects"]; 

Điều này sẽ không chạm vào đối tượng đã tìm nạp để đảm bảo không bị lỗi.

+1

Gotta yêu KVC! –

+2

Rất tiếc khi thấy câu trả lời này có quá ít phiếu bầu ... – mokagio

+2

@mokagio vì performFetch đã tạo lỗi. Thay vì lặp qua các phần có thể cực kỳ tốn kém nếu bạn có hàng nghìn, bạn chỉ cần gọi 'count' trên' fetchedObjects'. – Andy

2

Swift.

fetchedResultsController.fetchedObjects?.count

Các vấn đề liên quan