İç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
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
Nasıl UİSearchDisplayController/UİSear...
Nasıl sync CoreData bir DİNLENME uyums...
Nasıl re-sipariş CoreData kayıtları uy...
CoreData iPhone:/Nasıl bir alt çizgele...
Nasıl son tamamlama Geri Al mı?...