Ios 核心数据:无法加载名为“的类”;CDAccount";

Ios 核心数据:无法加载名为“的类”;CDAccount";,ios,objective-c,core-data,ios8,nsmanagedobject,Ios,Objective C,Core Data,Ios8,Nsmanagedobject,我最近下载了iOS 8,以确保我现有的应用程序能够正常运行,但我在启动时在调试器中收到一条警告: "CoreData: warning: Unable to load class named 'CDAccount' for entity 'CDAccount'. Class not found, using default NSManagedObject instead." 经过一些研究,人们在Swift中使用核心数据时似乎遇到了类似的问题,但我所有的代码都是Objective-C(数据模

我最近下载了iOS 8,以确保我现有的应用程序能够正常运行,但我在启动时在调试器中收到一条警告:

"CoreData: warning: Unable to load class named 'CDAccount' for entity 'CDAccount'.  
Class not found, using default NSManagedObject instead."
经过一些研究,人们在Swift中使用核心数据时似乎遇到了类似的问题,但我所有的代码都是Objective-C(数据模型至少有6个月没有改变)


任何建议都非常感谢,我真的很紧张,一旦人们开始升级到iOS 8,我的应用程序就不能正常运行了

我在Objective-C和Xcode 6中遇到了完全相同的问题。出于某种原因,Xcode从编译源代码中删除了我的“CustomNSManagedObject”.m类

转到您的项目目标->构建阶段->编译源代码,并使用+按钮添加CDAccount.m


如果您使用Mogenerator创建一个_CDAccount.m文件,请将其添加到编译源代码中。

这似乎是一个Xcode错误/问题。我使用的是Xcode 6.3.1

  • 单击核心数据实体(xxx.xcdatamodeld),然后选择该实体,在属性检查器中,您将看到该实体的类名设置为: PRODUCT_MODULE_NAME.xxx,其中“xxx”是实体的名称
解决方案:您必须用应用程序的名称替换产品\模块\名称

如果对您的应用程序名称有疑问,请在“构建设置”下进行检查,在“产品\模块\名称”上进行筛选,然后在“打包”下找到您的应用程序名称

  • 在某些情况下(我的情况下),数据模型文件(swift或objective-c)也会被Xcode从项目中删除——尽管它仍然在磁盘上,但您需要再次添加它。因此,在本例中,使用“CDAccount.m”文件并再次将其放入项目中(或者使用其他几种方法)
删除.xcdatamodeld:



致:



重建应用程序。

我的问题与此类似,但列出的解决方案不起作用,因为我的CD类存储在框架中。解决方案是将类名表示形式更改为“frameworkName.className”。但是,xcdatamodeld不允许我将其更改为该值,因此我必须在文件上“显示内容”,在XCode中打开“内容”文件,然后自己进行更改。

我的问题也类似,但原因是未设置实体模块


对此不确定,但您确定您的类是您构建的目标的成员吗?您是否在应用程序中使用社交或帐户框架?Accounts框架在内部使用核心数据,如果内存为CDAccount服务,则CDAccount是支持公共接口中ACAccount对象的核心数据实体。哦,真的吗?你能把我和文件联系起来吗?我找不到它。查看这篇帖子:同样的问题有不同的原因。创建数据库后,我重命名了该类。是书,我把它改名为书。导致了警告,但应用程序运行正常。我的对象已经在编译源代码中,并且我仍然在Xcode中得到错误6@PostCodeism,参见Lucien发布的相关答案。它帮了我的忙:这解决了我的问题。但是,我没有使用构建阶段来添加源代码,而是单击了项目中已经作为文件列出的.m文件,然后在Utilities panel>file Inspector下检查了目标成员资格。为什么XCode删除了.m文件是完全奇怪的。也许从一开始就没有添加过。在.m文件中除了一些@dynamic语句外没有其他内容。谢谢。我尝试了所有其他的修复方法(在许多不同但相似的问题中都很容易找到)。这最终解决了我头痛几个小时后的问题。对我来说,添加点有帮助。