0

このコードを使用すると例外があります。

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

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

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

同じ職場の2つのプロジェクトで「ExternalProjectClass」クラスを使用しています。MyApp アプリケーション (mac 版) で。それ以外の場合は、クラスを通常どおり使用できます。コーディングに問題があるだけです。

私は自分の英語がいかに下手かを知っています。誰かが私を助けてくれることを願っています。

よろしく。

4

1 に答える 1

0

Swift クラス名には名前空間があり、デフォルトの名前空間はモジュール名です。そのため、アーカイブをアプリから別のアプリに移動すると、クラス名が異なります。

@objc(ExternalProjectClass)クラスに属性を置くことができるのでExternalProjectClass、NSCoder が考慮する限り呼び出されます。

@objc(ExternalProjectClass) class ExternalProjectClass: NSObject, NSCoding { ... }
于 2016-04-13T08:33:12.737 に答える