SORU
11 Mayıs 2012, Cuma


İçerikler Çağlayan nasıl Sil - CoreData?

CoreData Varlık "" CoreData Girişleri koleksiyonu için bir-çok ilişkisi var "B", Cascade delete kullanarak kural.

Cihaz 1 "B" girdileri siler "" giriş. Bir cihaz 2 biri ayrıntılı bir görünümünü gösterir iCloud bir ortamda,

Ne zaman NSPersistentStoreDidImportUbiquitousContentChangesNotification bildirim alınan, aygıt 1, Uygulaması Temsilci çağırır mergeChangesFromContextDidSaveNotification ve sonra yayınları bir iç bildirim hangi tarafından yakalanır görünümü denetleyicisi gösteren detay giriş "B" (kod kullanır performBlock nereye.

Ancak, "Bir" ayrıntı görünümü denetleyicisi dahili bildirim aldığında gerçekten de, "B" hala CoreData geçerli bir nesne olarak var. giriş geçersiz olmasına rağmen giriş Cascade kural henüz çalışmasını tamamlamadı görünüyor. Bu nedenle cihaz 1 görünüm denetleyicisi beklenmedik sonuçlara yol açabilir sil, farkında değil.

mergeChangesFromContextDidSaveNotification temel veri birleştirildi ama Ardarda kural henüz tamamlamadı zamanından önce geri dönmek için görünür.

Denedim yenileme giriş "B" bildirim geldiğinde geçici süre ayarı stalenessInterval yönetilen nesne bağlama sıfır yani önbelleğe bir nesne yok kullanılan, ama ben hala geçerli bir giriş "B" den deposu.

Kontrol için null giriş "" bu noktada bir seçenek değil, çünkü durum biraz daha karmaşık daha ne tarif ettim burada ve bir null girdi "Bir" geçerli bazı durumlarda.

Görünüm denetleyicileri dahili bildirim göndermeden önce değişiklikleri birleştirme sonra ve gecikme tanıtmak için çalıştım. 2 saniyelik bir gecikme yardımcı olmadığını öğrendim, ama 10 saniyelik bir gecikme çalışır.

Ama bu gecikme, güvenmek istemiyorum. Bu kadar veri olmadan bir test ortamı ve üretim ortamında ne olacağını bilmiyorum. Deneysel bir gecikme güvenmek yapılacak en doğru şey gibi görünmüyor.

Doğru bir şey var mı? Ya da başlangıç olarak yanlış bir şey mi yapıyorum?

CEVAP
16 EKİM 2014, PERŞEMBE


Bu güzel bir kaynak buldum. Muhtemelen bu senin için bakıyor

http://www.cs.northwestern.edu/~riesbeck/programming/c /stl-summary.html

VEKTÖR

Kurucular

vector<T> v;                Make an empty vector.                                   O(1)
vector<T> v(n);             Make a vector with N elements.                          O(n)
vector<T> v(n, value);      Make a vector with N elements, initialized to value.    O(n)
vector<T> v(begin, end);    Make a vector and copy the elements from begin to end.  O(n)

Erişenleri

v[i]                Return (or set) the I'th element.                       O(1)
v.at(i)             Return (or set) the I'th element, with bounds checking. O(1)
v.size()            Return current number of elements.                      O(1)
v.empty()           Return true if vector is empty.                         O(1)
v.begin()           Return random access iterator to start.                 O(1)
v.end()             Return random access iterator to end.                   O(1)
v.front()           Return the first element.                               O(1)
v.back()            Return the last element.                                O(1)
v.capacity()        Return maximum number of elements.                      O(1)

Değiştiriciler

v.push_back(value)          Add value to end.                                               O(1) (amortized)
v.insert(iterator, value)   Insert value at the position indexed by iterator.               O(n)
v.pop_back()                Remove value from end.                                          O(1)
v.assign(begin, end)        Clear the container and copy in the elements from begin to end. O(n)
v.erase(iterator)           Erase value indexed by iterator.                                O(n)
v.erase(begin, end)         Erase the elements from begin to end.                           O(n)

Diğer kaplar bağlantıya gitmek için

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • Mark Hyder

    Mark Hyder

    6 EKİM 2011
  • NewsyTech

    NewsyTech

    2 AĞUSTOS 2010