在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
Swift教程_swift常见问题(0001)_CoreData: warning: Unable to load class named 'xxx' for entity 'xxx' Swift教程_swift常见问题(0002)_完美处理SourceKitService Crashed异常,6.1.1大部分已经修复 Swift教程_swift常见问题(0003)_storyboard修改不生效 Swift教程_swift常见问题(0004)_swift代码不能自动提示和补全 Swift教程_swift常见问题(0005)_完美解决Cannot override 'dealloc'异常 Swift教程_swift常见问题(0006)_完美解决swift数组索引是变量时的内存溢出 Swift教程_swift常见问题(0007)_Can't find model for source store 问题描述: 相信搞过swift的coreData开发的都应该知道,直接通过xcdatamodeld配置文件,通过Editor->Create NSManagedObject SubClass自动创建实体类后,通过class func entityForName(entityName: String, inManagedObjectContext context: NSManagedObjectContext) -> NSEntityDescription?这个方法获取实体时会报一个异常,如下:
该异常是由于swift的注解机制引起的,首次运行只会对声明了@objc的类认为是实体类。 解决方案: 方案1.临时处理方法 在对应的实体类上声明@objc(TestEntity),代码如下:
方案2.永久处理方法 每个实体类都做上面的处理有些繁琐,按照下面的方法修改coreData生成实体类的模版,这样自动生成时就会自动加上该句声明。具体如下: 首先,找到xcode的实体类生成模版NSManagedObject subclass.xctemplate,具体路径<Xcode应用路径>/Contents/Developer/Library/Xcode/Templates/File Templates/Core Data/NSManagedObject subclass.xctemplate,如图: 然后,将该文件夹连同以下文件复制到~/Library/Developer/Xcode/Templates***意要自己创建Templates文件夹),如图: 最后,修改这个文件夹下的___FILEBASENAME___.swift文件,自动生成时就会根据这个模版进行生成了。 代码如下:
|
请发表评论