Saya baru mengenal Realm, dan saya sudah melihat jawaban ini tentang membatasi kueri realm (di banyak tempat lain juga).
Masalah saya adalah kode berikut memakan waktu terlalu lama untuk memuat data ke dalam array ketika jumlah data bertambah besar:
RLMResults* rlm = [[Item class] objectsWithPredicate:predicate]; // this loads fast
NSArray* results = [rlm valueForKey:@"self"]; // this is slow
setahu saya saya tidak bisa membatasi hasil menggunakan predikat juga, jadi saya mencoba membatasi hasil seperti contoh ini pada website realme, sebagai berikut:
RLMResults* rlm = [[Item class] objectsWithPredicate:predicate]; // this loads fast
NSMutableArray* results = [@[] mutableCopy];
for (NSInteger i = 0; i < 5; i++) {
Item* item = rlm[i]; // only the first call (when i == 0) is slow here
[results addObject:item];
}
jadi yang menarik di sini adalah hanya panggilan pertama rlm[i] (rlm[0]) yang memakan waktu lama, dan setelahnya (saat i > 0) panggilan tersebut bekerja dengan cepat.
Apakah saya melakukan sesuatu yang salah? atau adakah cara untuk memuat data dalam jumlah besar dengan lebih cepat atau membatasi hasilnya?
Terima kasih banyak!