2014-09-13 41 views
5

Geçenlerde benim Mevcut uygulama onunla düzgün çalıştığından emin olmak için iOS 8'i indirdiğiniz ama başlatılması üzerine ayıklayıcısında bir uyarı alıyorum:Çekirdek veriler: "CDAccount" adlı sınıfı yüklenemiyor

"CoreData: warning: Unable to load class named 'CDAccount' for entity 'CDAccount'. 
Class not found, using default NSManagedObject instead." 

Bazı araştırmalardan sonra, Swift'deki Temel Veriler kullanılırken insanların benzer sorunları olduğu görülüyor, ancak tüm kodum Objective-C'de (ve veri modeli en az 6 ay boyunca değişmedi) görünüyor.

Herhangi bir tavsiye memnuniyetle karşılandı, kullanıcılar iOS 8'e yükseltmeye başladıktan sonra uygulamamın düzgün çalışmayacağı konusunda gerçekten gergindim!

+0

değil ancak sınıf için inşa ediyoruz hedefin üyesi olduğundan emin misin? – fzaziz

+0

Uygulamanızda Sosyal veya Hesaplar çerçevelerini kullanıyor musunuz? Hesaplar çerçevesi, Çekirdek Verileri dahili olarak kullanır ve bellek sunulursa CDAccount, ortak arabirimde ACAccount nesnesini destekleyen Çekirdek Veri öğesidir. – quellish

+0

Gerçekten mi? Beni belgelere bağlayabilir misin? Onu bulamadım. – Mason

cevap

16

Nesne-C ve Xcode 6'da da aynı sorunu yaşadım. Bazı nedenlerden dolayı Xcode, 'CustomNSManagedObject'.m sınıflarımı, Derleme Kaynaklarından ayırdı. Proje hedefine

Git -> Derleme Kaynaklar ve bir _CDAccount.m dosyası oluşturmak için Mogenerator kullanıyorsanız CDAccount.m

eklemek için + düğmesini kullanın sizin Derleme Kaynaklarına eklemek -> Aşama kurmak de.

+8

Nesnem zaten derlenmiş kaynaklarda ve hala Xcode 6 – PostCodeism

+0

@ PostCodeism'de hata alıyorum, Lucien tarafından yayınlanan ilgili cevaba bakın. Benim için hile yaptı: http://stackoverflow.com/questions/25076276/unabled-to-find-specific-subclass-of-nsmanagedobject –

+0

Bu benim sorunum giderildi. Ancak, kaynak kodunu eklemek için Oluşturma Aşamaları kullanmak yerine, projede zaten dosya olarak listelenmiş olan .m dosyasına tıkladıktan sonra Yardımcı Programlar panelinde Dosya Denetçisi altındaki Hedef Üyeliğini kontrol ettim. Neden XCode kaldırıldı .m dosyası tamamen garip. Belki de başlangıçtan hiç bir zaman eklenmedi. Birkaç @dynamic ifadesinden başka .m dosyasında fazla bir şey yok. – Brainware

2

Bir Xcode hatası/sorunu gibi görünüyor. Ben, o zaman varlığı seçin çekirdek veri varlık (xxx.xcdatamodeld) üzerine Xcode 6.3.1

  • tıklama kullanıyorum ve nitelikleri müfettişi size işletmenin sınıf adı olarak ayarlandığını göreceksiniz: PRODUCT_MODULE_NAME.xxx, burada 'xxx' sizin tarafınızın adıdır.

çözüm: PRODUCT_MODULE_NAME ürününü uygulamanızın adıyla değiştirmeniz gerekir.

uygulamanızın adının konusunda şüphe varsa, 'product_module_name' üzerine, filtrenin 'ayarlarını kurmak' altında kontrol edin ve 'ambalaj' bazı durumlarda

  • (benim durumumda) altında uygulamanızın adını bulacaksınız Veri modeli dosyası (hızlı veya objektif-c) de Xcode tarafından projeden kaldırılır - hala diskte olsa da, ancak yeniden eklemeniz gerekir. Yani bu durumda yine projenizde bırakın & 'CDAccount.m' dosyasını almak (veya bunu yapmak için çeşitli yollarla başka kullanın) "Varsayılan"
7

Konfigürasyonlarda "nokta" Kaldır. xcdatamodeld:

enter image description here

için:
enter image description here
enter image description here
Uygulamayı yeniden oluşturun.

+1

Bunun için teşekkürler. Diğer tüm düzeltmeleri denedim (ki bunlar SO üzerinde birçok farklı ama benzer soruda kolayca bulunabiliyordu. Bu, saatlerce baş ağrısından sonra sorunu çözdü.) – Amos

+1

Bana yardımcı olan nokta ekledi. – Gamec

0

Sorunum benzerdi, ancak listelenen çözümler işe yaramadı çünkü CD Sınıflarım bir çerçevede saklandı. Çözüm, Sınıf Adı Temsili'ni "frameworkName.className" olarak değiştirmekti. Ancak, xcdatamodeld bunu değiştirmeme izin vermedi, bu yüzden dosyada "İçeriği Göster" i, XCode'daki "içerik" dosyasını açmam ve değişiklikleri kendim yapmam gerekiyordu.

2

Sorunum da benzerdi, ancak neden varlık modülünün ayarlanmadığıydı.

Bundan emin

module selection in Entity properties menu

İlgili konular