与二传手的奇怪问题

时间:2016-12-15 20:41:53

标签: swift core-data set setter

我有这个代码,每当我运行应用程序时,它都会给我EXC_BAD_ACCESS。 我在XCode的终端打印了self.state和newValue.rawValue的值,他们有值,但我不明白为什么我得到“EXC_BAD_ACCESS”错误和“CoreData:警告:无法加载为实体类命名的类未找到,使用默认的NSManagedObject“。当我关注

时,我收到此错误
d.change = .n  //d is just instance of class from where state comes

可能是什么原因?

var change: A {         
        get { return (A(rawValue: self.state) ?? .none)! }
        set { self.state = newValue.rawValue }
    }

enum A: Int16 { 
    case a = 1
    case b = 2
    case c = 3
    case n = 90
}

state是继承自NSManagedObject

的类的属性
@NSManaged var state: Int16

1 个答案:

答案 0 :(得分:0)

Unable to load class named for entity Class错误意味着您已在Core Data模型编辑器中创建了该实体,但您没有告诉它使用哪个类名。核心数据不知道类Class与实体Class一起使用,因为名称不必相同,因此核心数据不会假设它们是。所以它使用普通的NSManagedObject,但警告你。

您无法使用Class的属性,因为您没有WAMySeasideApp>>startUp: resuming WAMySeasideApp waApplication preferenceAt: #maximumRelativeAge put: 18000. "5 hours" WAEFTTasksApp waApplication preferenceAt: #maximumAbsoluteAge put: 86400. "24 hours" ZnZincServerAdaptor startOn: 8080. WAMySeasideApp>>waApplication ^ WAAdmin defaultDispatcher handlerAt: 'my-seaside-app' ,因此您的应用会崩溃。

您可以通过转到Core Data模型编辑器并确保实体的类名是正确的来解决此问题。