SORU
3 Temmuz 2009, Cuma


Nasıl re-sipariş CoreData kayıtları uygulamak için?

İPhone uygulamam için CoreData kullanıyorum, ama CoreData kayıtları yeniden düzenlemek için sağlayan otomatik bir yol sağlamaz. Sipariş bilgileri saklamak için başka bir sütun kullanmayı düşündüm ama bu dizin sipariş için bitişik sayıları kullanarak bir problem vardır. eğer çok fazla veri ile uğraşıyorum, yeniden bir rekor potansiyel olarak sipariş bilgisi, çok fazla kayıt (bir dizi öğe sırasını değiştirme gibi sağa sola) güncelleştirme içerir

Verimli bir sipariş düzeni uygulamak için en iyi yolu nedir?

CEVAP
6 Ocak 2010, ÇARŞAMBA


FetchedResultsController ve temsilci kullanıcı odaklı model değişiklikleri için kullanılacak demek değildir. the Apple reference docbkz. Kullanıcı Odaklı Güncellemeler bölümünü arayın. Eğer bir satırı şekilde büyülü, böyle, ne yazık ki yok.

Gerekenler bu yöntemde güncellemeleri yapmak

- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
 userDrivenDataModelChange = YES;

 ...[UPDATE THE MODEL then SAVE CONTEXT]...

 userDrivenDataModelChange = NO;
}

değişiklikler zaten kullanıcı tarafından yapılır ve aynı zamanda, bildirimleri bir şey yapmak önlemek için:

- (void)controllerWillChangeContent:(NSFetchedResultsController *)controller {
 if (userDrivenDataModelChange) return;
 ...
}
- (void)controller:(NSFetchedResultsController *)controller didChangeObject:(id)anObject atIndexPath:(NSIndexPath *)indexPath forChangeType:(NSFetchedResultsChangeType)type newIndexPath:(NSIndexPath *)newIndexPath {
 if (userDrivenDataModelChange) return;
 ...
}
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
 if (userDrivenDataModelChange) return;
 ...
}

Sadece benim içinde bu-(Şipşak) uygulamasını hayata geçirdik ve gayet iyi çalışıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • case LianLi

    case LianLi

    28 Mayıs 2010
  • Dylan Brenan

    Dylan Brenan

    22 Aralık 2009
  • xXGAMERrs_Xx

    xXGAMERrs_Xx

    31 Temmuz 2014