2016-12-15 15 views
0

私はこのコードを持っており、いつでも私がアプリを実行しているときにEXC_BAD_ACCESSを与えてくれます。 私はself.stateとnewValue.rawValueの値をpoでXCodeの端末に表示していますが、値はありますが、なぜ「EXC_BAD_ACCESS」エラーと「CoreData:warning:エンティティクラスの名前のクラスが見つかりません代わりに、デフォルトの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 
} 

状態がUnable to load class named for entity Classエラーはあなたがコアデータモデルエディタでエンティティを作成していることを意味していますが、それはどのようなクラス教えてくれなかったことNSManagedObject

@NSManaged var state: Int16 

答えて

0

から継承したクラスのプロパティです使用する名前。コアデータは、クラスClassがエンティティClassと共に使用されていることを知らない。なぜなら、名前が同じである必要がないため、コアデータはそれを想定していないからである。だから普通の古いNSManagedObjectを使用していますが、警告があります。

Classのプロパティを使用できないため、アプリケーションがクラッシュする可能性があります。

これを解決するには、コアデータモデルエディタを開き、エンティティのクラス名が正しいことを確認します。