Birkaç düşünceler ...
Eğer searchController
için resultsController
oluşturmak
, ona aramak istediğiniz verileri geçirebilir. Ana tablonuzda
NSFetchedResultsController
kullanıyorsanız,
fetchedObjects
dizisini geçirebilirsiniz. Ardından, arama metninde yapılan değişikliklere yanıt olarak, diziyi filtrelersiniz (arama sonuçlarını içeren ayrı bir dizi oluşturmak için bir yüklem ve
filteredArrayUsingPredicate
kullanabilir veya diziyi oluşturmak için yineleme yapabilirsiniz). Bu rotanın dezavantajları, (manuel olarak uygulanmadıkça), arama sonuçları ayrı bölümlere ayrılmayacak ve altta yatan veriler değiştiğinde arama sonuçları otomatik olarak güncellenmeyecektir (örneğin bir arka plan iş parçacığında). Sanırım ikinci bir
NSFetchedResultsController
: bölümlerin kullanımını kolaylaştırabilir ve örneğin verileriniz arka planda güncelleştiriliyorsa sonuçların otomatik olarak güncellenmesine (temsilci yöntemleri kullanılarak) izin verebilir. Ama tanıttığı karmaşıklığın gerginliğini duyardım. Eğer (yani
resultsController
= nil belirtin) in situ arama uygulamak için tercih eğer
Diğer bir seçenek, (yani altta yatan yüklem değiştiren ve getirme reperforming) NSFetchedResultsController
kendini güncellemek için arama ölçütlerini kullanmak olacaktır. Bu şekilde arama tablonuz tam olarak ana tablo gibi görünür ve hissedilir (bunu kullanırsanız bölümler de dahil olmak üzere), ancak arama ölçütleri daha hassas hale geldikçe görüntülenen satırlar azalır. Bu seçenek, FRC'nin düzgün bir şekilde yeniden oluşturulduğundan ve büyük bir veri kümeniz varsa, kabul edilemez bir performansa sahip olduğundan emin olunmalıdır.
Birkaç ay sonra buraya girerken, yukarıdaki üçüncü seçeneği uyguladık; Kod çok daha temiz ve iki 'NSFetchedResultsController's arasında geçiş yapmak zorunda değilim. – Koen