2016-12-15 31 views
0

我有這段代碼,每當我運行的應用程序,它給了我EXC_BAD_ACCESS。 我在XCode的終端打印self.state和newValue.rawValue的值,他們有價值,但我不明白爲什麼我得到「EXC_BAD_ACCESS」錯誤和「CoreData:警告:無法加載爲實體類命名未找到,使用默認的NSManagedObject「。我收到這個錯誤時,我做以下setter的奇怪問題

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 
} 

國家是階級的屬性,從NSManagedObject

繼承
@NSManaged var state: Int16 

回答

0

Unable to load class named for entity Class錯誤意味着你在覈心數據模型編輯器創建的實體,但你沒有告訴它什麼課要使用的名稱。核心數據不知道類Class與實體Class一起使用,因爲名稱不必相同,因此核心數據不假定它們是。所以它使用一個普通的舊NSManagedObject,但警告你。

你不能使用Class的屬性,因爲你沒有它的屬性,所以你的應用程序崩潰。

您可以通過轉到核心數據模型編輯器並確保實體的類名稱正確來解決此問題。