2016-03-26 12 views
0

私はこのコードを使用して例外があります。2つの異なるプロジェクトでクラスを使用する:デコーダ例外

let readingData = NSKeyedUnarchiver.unarchiveObjectWithData(data) as? [ExternalProjectClass] 

コンソールのメッセージ:

キー(NS.objects)のクラスのオブジェクト(MyIOSApp.ExternalProjectClass)をデコードすることができません。クラスはソースコードまたはリンクされていないライブラリに定義されている可能性があります。 '

同じ職場で2つのプロジェクトで「ExternalProjectClass」クラスを使用します。 MyAppアプリケーション(Mac版)。さもなければ私はクラスを通常使うことができます。私はコーディングに問題があります。

私は英語がどれくらい貧しいかを知っています。私は誰かが私を助けることを願っています。

よろしくお願いいたします。

答えて

0

スウィフトクラス名は名前空間を持ち、デフォルト名前空間はモジュール名です。したがって、アーカイブを別のアプリケーションに移動すると、クラス名が異なります。

あなたのクラスに@objc(ExternalProjectClass)属性を入れることができるので、NSCoderが考える限りExternalProjectClassと呼ばれます。

@objc(ExternalProjectClass) class ExternalProjectClass: NSObject, NSCoding { ... } 
関連する問題