Saya membaca banyak tentang Core Data .. tapi apa cara yang efisien untuk membuat perhitungan atas Entity-Type (seperti SQL dapat dilakukan dengan SELECT count (1) ...). Sekarang saya baru saja menyelesaikan tugas ini dengan memilih semua dengan NSFetchedResultsController
dan mendapatkan hitungan NSArray
! Saya yakin ini bukan cara terbaik ...
objective-c
core-data
erazorx
sumber
sumber
countForFetchRequest:error:
negara yangNSNotFound
dikembalikan jika terjadi kesalahan. Secara umum,NSError
penanganan dalam konvensi Kakao adalah bahwa nilaierr
tidak terdefinisi (dan sering berbahaya) jika tidak terjadi kesalahan.Agar jelas, Anda tidak menghitung entitas, tetapi instance entitas tertentu. (Untuk benar-benar menghitung entitas, tanyakan model objek yang dikelola untuk menghitung entitasnya.)
Untuk menghitung semua instance dari entitas yang diberikan tanpa mengambil semua data, gunakan
-countForFetchRequest:
.Sebagai contoh:
sumber
Cepat
Cukup mudah untuk mendapatkan jumlah total instance dari entitas dalam Core Data:
Saya menguji ini di simulator dengan jumlah objek 400.000 + dan hasilnya cukup cepat (meskipun tidak instan).
sumber
Saya hanya akan menambahkan itu untuk membuatnya lebih efisien ... dan karena itu hanya hitungan, Anda tidak benar-benar membutuhkan nilai properti dan tentu saja seperti salah satu contoh kode di atas Anda tidak perlu sub-entitas juga.
Jadi, kodenya harus seperti ini:
Semoga ini bisa membantu.
sumber
Saya percaya cara termudah dan paling efisien untuk menghitung objek adalah dengan menetapkan
NSFetchRequest
tipe hasilNSCountResultType
dan menjalankannya denganNSManagedObjectContext countForFetchRequest:error:
metode.sumber
Saya menulis metode utilitas sederhana untuk Swift 3 untuk mengambil hitungan objek.
sumber
Dalam Swift 3
sumber
Ini benar-benar hanya ini:
"Boat" hanyalah nama entitas dari layar model data Anda:
Apa itu global
yourContainer
?Untuk menggunakan data inti, pada titik tertentu di aplikasi Anda, satu kali saja, Anda cukup pergi
di mana "barang" hanyalah nama file model data.
Anda hanya akan memiliki satu untuk ini,
Jadi dari mana saja di aplikasi
adalah wadahmu,
Jadi dalam praktiknya untuk mendapatkan hitungan entitas apa pun, hanya saja
sumber
Jika Anda ingin menemukan jumlah untuk pengambilan predicated tertentu, saya yakin ini adalah cara terbaik:
sumber