SORU
28 EKİM 2014, Salı


CoreData: uyarı: yük sınıfı adlı Yapamaz

Objective-C mevcut bir TV Şovu, Hızlı bir sürüm Güncellemelerinden 6.1 ve ben kullanarak app CoreData ile bazı sorunları çoğaltarak ediyorum.

4 varlıklar bir model oluşturduk, NSManagedObject onların alt sınıf (Swift) yarattı ve tüm dosya doğru uygulamayı hedefler belirledik ('kaynak') Derleme.

Hala yeni bir varlık eklemeye çalıştığım zaman bu hatayı alıyorum:

CoreData: uyarı: yük sınıfı 'adlı Gösterileri' varlık için Açılamıyor 'Gösteriyor'. Sınıf bulunamadı, varsayılan kullanarak NSManagedObject yerine.

Bir kaç yorum:

Çekirdek Veri kaydetme, arka plan iş parçacığı izin vermek için üst-alt bağlam yolu kullanıyorum. Bu ManagedObjectContext kullanarak ayarlayarak bunu:

lazy var managedObjectContext: NSManagedObjectContext? = {
  // Returns the managed object context for the application (which is already bound to the persistent store coordinator for the application.) This property is optional since there are legitimate error conditions that could cause the creation of the context to fail.
  let coordinator = self.persistentStoreCoordinator
  if coordinator == nil {
    return nil
  }
  var managedObjectContext = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.MainQueueConcurrencyType)
  managedObjectContext.persistentStoreCoordinator = coordinator
  return managedObjectContext
}()

ve verileri kullanarak kaydederek:

dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
  var context = NSManagedObjectContext(concurrencyType: NSManagedObjectContextConcurrencyType.PrivateQueueConcurrencyType)
  context.parentContext = self.managedObjectContext!
  ...rest of core data saving code here...
})

CEVAP
28 EKİM 2014, Salı


Bu uyarı oldukça can sıkıcı bir durum. Spuriously görünüyor. Sınıfı doğru model düzenleyici olarak ayarlandığından emin yaparak çoğu durumda ondan kurtulmak için mümkün olmuştur. Diğer birçok SOF mesajlar aksine, modül adı (MyApp.Shows) dahil etmek için öneri bana yardımcı oldu.

1.
Sürüm Güncellemelerinden 7 beta 3 çalışır

Up to XCode7 b3

Daha uygun bir tekil varlık adını düzelttim dikkat edin.

Güncellemelerinden 7 için çalışan versiyonunu beta 4 ve üstü

"Mevcut Ürün Modülü" Modül! metni silmek gerekir

From Xcode7 beta 3

2.
Ayrıca eklemek için sık sık tavsiye takip etmelidir

@objc(Show)

sınıfın hemen üstünde.

Not: Eğer böyle büyük mükafat 7 beta 4 veya sonraki bir sürümünü kullanıyorsanız, bu adım isteğe bağlıdır.

3.
Ayrıca emindökmeoluşturulan varsayılan sadece NSManagedObject olarak uygun sınıfı için nesne başardı.

var newShow = NSEntityDescription.insertNewObjectForEntityForName("Show", 
                 inManagedObjectContext: context) as Show

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • FamilyFeud

    FamilyFeud

    22 AĞUSTOS 2006
  • Lamarr Wilson

    Lamarr Wilso

    27 Aralık 2008
  • TheOtherMau5

    TheOtherMau5

    6 Mart 2012