'In NSManagedObjectContext ne performBlock: için kullanılır?
İOS 5, NSManagedObjectContext
yeni yöntemler, performBlock:
performBlockAndWait:
bir çift var. Bu yöntemler, aslında ne için kullanılır? Onlar eski sürümlerini yerini alacak. Ne tür bir blok onlara geçmiş olması gerekiyor? Nasıl kullanmak için hangi karar? Eğer herkes kendi kullanımı için bazı örnekler varsa çok iyi olurdu.
CEVAP
Yöntemleri performBlock:
performBlockAndWait:
MOC başlatıldı NSManagedObjectContext
örnek mesaj göndermek için NSPrivateQueueConcurrencyType
NSMainQueueConcurrencyType
kullanarak kullanılır. Eğer bu içerik türleri, kalıcı depo veya ayar değişiklikleri kaydetme gibi bir şey yaparsan, seni bir blok içinde.
performBlock:
arka sıraya blok eklemek ve kendi iş parçacığı üzerinde çalıştırmak için zamanlama. Bloğu hemen dönecektir. Uzun yedekleme deposu için ısrar işlemleri için kullanabilirsiniz.
performBlockAndWait:
da arka sıraya blok eklemek ve kendi iş parçacığı üzerinde çalıştırmak için zamanlama. Ancak, blok kadar dönmeyecek blok yürütme tamamlandı. Eğer operasyon başarılı olup olmadığını bilmek kadar hareket ederseniz, o zaman bu sizin için mükemmel bir seçimdir.
Örneğin:
__block NSError *error = nil;
[context performBlockAndWait:^{
myManagedData.field = @"Hello";
[context save:&error];
}];
if (error) {
// handle the error.
}
Yaptım çünkü ** 12, bir blok dış hata erişmek unutmayın. performBlock:
farklı bir yaklaşım gerektirir.
iOS 5 core data release notes:
NSManagedObjectContext şimdi eş zamanlı işlemler için yapısal destek sağlar. Yönetilen nesne bağlamı initWithConcurrencyType kullanarak oluşturduğunuz zaman:, (sıra) iplik ilişkisi için üç seçenek var
Hapsi (NSConfinementConcurrencyType).
Varsayılan değer budur. Bu bağlamda herhangi bir iş parçacığı üzerinde oluşturulan bir başkası tarafından kullanılan olmayacak söz veriyorum. (Bu tam olarak önceki sürümlerde kullandığınız aynı iş parçacığı gerekliliktir.)
Özel sıra (NSPrivateQueueConcurrencyType).
İçeriği ve özel bir sıra oluşturur ve yönetir. Yerine oluşturma ve yönetme bir konu ya da sıra ile bir bağlam ilişkili, burada içeriği sahibi sıra ve yöneten tüm detayları için (sağlanan kullandığınız blok tabanlı yöntemleri, aşağıda açıklandığı gibi).
Temel sıra (NSMainQueueConcurrencyType).
Bu bağlamda ana sırası ile ilgili olarak, uygulama olay haline bağlı döngü, ama aksi takdirde sıra tabanlı özel bir içerik benzer. Kapsamları yalnızca ana konu üzerinde kullanılmak üzere gerekli olan kontrolör ve UI nesneleri ile bağlantılı bu sıra türü kullanın.
Nasıl yansıması genel bir Yöntemi çağı...
Geçişlerini için Dinlenmek nedir ve na...
Temel veri yapıları Redis ne için kull...
Nasıl ELMAH el ile hataları oturum açm...
PHP: array_filter (Nasıl kullanılır) d...