İndekslemeyi destekleyen bir Core Data destekli UITableView'ı (örneğin: yanlarda görünen karakterler ve onlarla birlikte gelen bölüm başlıkları) uygulamaya çalışıyorum. Bütün kullanarak Çekirdek veri olmadan bu uygulamaya hiçbir problem:Çekirdek Veriler, endeksleme ile UITableView destekli
- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section;
- (NSArray *)sectionIndexTitlesForTableView:(UITableView *)tableView;
Ben de indeksleme kullanmadan Çekirdek Data tarafından desteklenmektedir bir UITableView uygulayan bir sorunum yok.
Anlamaya çalıştığım şey, ikisini birleştirmenin nasıl zarif bir şekilde birleştirileceğidir. Açıkça, içeriği indeksleyip yeniden bölümlendirdiğinizde, belirli bir dizin yolundaki şeyleri almak için artık standart NSFetchedResultsController'ı kullanamazsınız. Bu yüzden bir NSArray dizinindeki indeks harfleri ve dizinlenmiş içeriğimi bir NSDictionary içinde saklıyorum. Bu, tüm ekran için çalışıyor, ancak özellikle düzgün bu yöntemler nasıl uygulanacağını, satır ekleme ve silme geldiğinde bazı gerçek baş ağrısı vardır: bu beni döndürüyor endeks yolları Çünkü
- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller;
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath;
- (void)controller:(NSFetchedResultsController *)controller didChangeSection:(id <NSFetchedResultsSectionInfo>)sectionInfo atIndex:(NSUInteger)sectionIndex forChangeType:(NSFetchedResultsChangeType)type;
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller;
olanlarla hiçbir korelasyona sahip çekirdek verilerde. Kullanıcı bir satır eklediğinde sadece NSArray ve NSDictionary dizinimi yeniden oluşturarak çalışmayı ekledim, ancak silindiğinde aynı şeyi yapmak tüm uygulamayı çöker.
Basit bir örnek var mı/örnek Tüm bu işlerin düzgün bir şekilde yapılabilmesi için burada özlüyorum.
Düzenleme: Sadece açıklığa kavuşturun NSFetchedResultsController uygulamasının bunu kutudan çıkardığını biliyorum, ancak istediğim, Kişiler uygulaması gibi işlevin çoğaltılmasıdır; burada dizin, kişinin ilk adının ilk harfidir.
Sanırım kendimi yeterince açıklamamıştım. İndekslerimin Kişiler uygulaması gibi olmasını, kişilerin adının ilk harfini istiyorum. – rustyshelf
Peki, neden firstNameKeyPath olarak ilk adı kullanmıyor? – gerry3
sectionNameKeyPath! ??!?! ??! Bunu nasıl özledim? Vay, bu harika çalışıyor. Doco'yu kendi kodumu yazmadan önce daha iyi okumalıydım ... buna geri döndü ve tatlı bir şekilde çalışıyor. Yapabilseydim sana +5000 verirdim;) – rustyshelf