SORU
29 Mart 2012, PERŞEMBE


'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
3 NİSAN 2012, Salı


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.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmbarkToHeaven

    EmbarkToHeav

    3 EYLÜL 2007
  • Marques Brownlee

    Marques Brow

    21 Mart 2008
  • MugenPowerBatteries

    MugenPowerBa

    8 EKİM 2010