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
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
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
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
git Uyarı: uzak BAŞ varolmayan hakem, ...
Uyarı: itme.varsayılan Geri Al; örtülü...
Nasıl özel yöntemleri, alanları veya i...
Neden Java Vector sınıfı eski veya kul...
Böyle büyük mükafat uyarı: "Birde...