1

Simperium を既存のアプリに追加しようとすると、NSAssertion エラーが発生します。

(gdb) po $eax
Simperium couldn't load member data (unsupported type)

スタックトレース:

(gdb) bt
#0  0x02f63cbc in objc_exception_throw ()
#1  0x0190da48 in +[NSException raise:format:arguments:] ()
#2  0x00a5b2cb in -[NSAssertionHandler handleFailureInMethod:object:file:lineNumber:description:] ()
#3  0x003ac625 in -[SPCoreDataExporter addMembersFrom:to:] (self=<value temporarily unavailable, due to optimizations>, entityDesc=<value temporarily unavailable, due to optimizations>) at /Users/kineticpoet/dev/simperium-ios-private/Simperium/SPCoreDataExporter.m:95
#4  0x003acd3b in -[SPCoreDataExporter exportModel:classMappings:] (_cmd=0x3fa641, model=0x7b377560) at /Users/kineticpoet/dev/simperium-ios-private/Simperium/SPCoreDataExporter.m:156
#5  0x00374a4d in -[Simperium startWithAppID:APIKey:model:context:coordinator:] (self=<value temporarily unavailable, due to optimizations>, _cmd=<value temporarily unavailable, due to optimizations>, model=<value temporarily unavailable, due to optimizations>) at /Users/kineticpoet/dev/simperium-ios-private/Simperium/Simperium.m:385
#6 …

サポートされているタイプは何ですか? バイナリデータはサポートされていますか? 私のアプリでは、バイナリ データに「外部ストレージを許可」を使用しています。それはサポートされていますか?

詳しい情報を知るにはどうすればよいですか?

アップデート:

Simperiums Simpletodo の例を拡張し、バイナリ データ属性を持つ新しいエンティティを追加すると、同じエラーが発生します。

…
2012-05-13 14:30:20:192 SimpletodoFinal[42429:fb03] Simperium starting... 
2012-05-13 14:30:20.222 SimpletodoFinal[42429:fb03] *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'Simperium couldn't load member data (unsupported type)'
*** First throw call stack:
(0x17f2022 0x1bcecd6 0x179aa48 0xdda2cb 0x3fb85 0x4029b 0x7fad 0x2e37 0x441386 0x442274 0x451183 0x451c38 0x445634 0x2082ef5 0x17c6195 0x172aff2 0x17298da 0x1728d84 0x1728c9b 0x441c65 0x443626 0x290d 0x2875 0x1)
terminate called throwing an exception

更新^2 :

Simperium は、バイナリ データを持つエンティティのスーパークラスを非NSManagedObjectクラスに変更した後、同期を開始します。

4

1 に答える 1

2

コア データのバイナリ型に対する Simperium のサポートは、現在文書化されておらず、制限されています。Simperium が特定の属性 (まだ完全にはサポートされていないバイナリ属性を含む) を認識しないようにするには、その属性にユーザー情報パラメーターを追加します。

モデル エディターで属性を強調表示し、インスペクター ペインを開き、ユーザー情報パラメーターを追加します。キーをspDisableSyncに、値を に設定します1。これにより、残りのエンティティを Simperium で正常に使用できるようになります (必要な場合)。

于 2012-05-13T17:26:58.590 に答える