首页 > 代码库 > Swift 错误 - Swift开发coredata出现Class not found解决办法

Swift 错误 - Swift开发coredata出现Class not found解决办法

转载自http://blog.csdn.net/longhai0long/article/details/38379247

刚看swift开发IOS,在使用Core Data框架时遇到了一个问题,控制台打出的log 如下:

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

百思不得其解抓狂,后来在StackOverFlow上找到了一种解决办法,就是在Model类的开关加上这个的注解:

@objc(CollectNews) 

Demo的部分代码分享给大家,仅做参考:
Model类

import Foundation    import CoreData  
@objc(CollectNews)    class CollectNews: NSManagedObject {          @NSManaged var date: NSNumber        @NSManaged var newsId: NSNumber    } 

AppDelegate类:

func application(application: UIApplication!, didFinishLaunchingWithOptions launchOptions: NSDictionary!) -> Bool {          insertData()        selectData()          return true    }        //插入数据    func insertData(){          //取Entity对象        var collectNews = NSEntityDescription.insertNewObjectForEntityForName("CollectNews", inManagedObjectContext: self.managedObjectContext) as CollectNews            //对属性进行修改        collectNews.newsId = 12        collectNews.date = 20140805            //保存        if self.managedObjectContext.hasChanges{            self.managedObjectContext.save(nil)        }    }        //查询    func selectData(){        //得request对象        var request = NSFetchRequest()        var entityQueue = NSEntityDescription.entityForName("CollectNews", inManagedObjectContext: self.managedObjectContext)        request.entity = entityQueue        var errorInfo:NSError?        //取结果集        var resultArr = self.managedObjectContext.executeFetchRequest(request, error: &errorInfo) as NSArray            println("----》\(resultArr.count)")            var temp = resultArr[0] as CollectNews            println("--->\(temp.newsId)")    } 

 

Swift 错误 - Swift开发coredata出现Class not found解决办法