您的位置:首页 > 移动开发 > Objective-C

xcode 7种使用coredata遇到 Class not found, using default NSManagedObject instead.问题

2015-11-04 17:12 543 查看
CoreData: warning: Unable to load class named 'CoreDataSwift2_2.Bowtie' for entity 'Bowtie'.  Class not found, using default NSManagedObject instead.

fatal error: NSArray element failed to match the Swift Array Element type

xcode 7 中遇到这种问题纠结了好久,最终解决了。


This warning is quite annoying. It appears spuriously. I have been able to get rid of it in most cases by making sure that the class is set correctly in the model editor. Unlike in many other SOF posts, the suggestion to include the module name (like
MyApp.Shows
) has not helped me.

1.

Version that works up to Xcode 7 beta 3



Notice that I corrected your entity name to the more appropriate singular.

Version that works for Xcode 7 beta 4 and above

You need to delete the text "Current Product Module" in Module!



2.

You should also follow the frequent recommendation to include

@objc(Show)

just above your class.

Note: If you are using Xcode 7 beta 4 or later, this step is optional.

3.

Also make sure to cast the created managed object to the proper class, as the default would be just
NSManagedObject
.

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



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: