2012-05-13 27 views
1

試圖Simperium添加到現有的應用程序,我得到一個錯誤NSAssertion:Simperium無法加載數據成員(不支持的類型)

(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 … 

支持哪些類型?是否支持二進制數據?我的應用程序爲二進制數據使用「允許外部存儲」。是否支持?

我如何知道更多信息?

UPDATE:

擴展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類後同步。

回答

2

Simperium對核心數據中的二進制類型的支持目前尚未公開和限制。爲防止Simperium看到任何特定屬性(包括尚未完全支持的二進制屬性),可以將User Info參數添加到該屬性。

突出顯示模型編輯器中的屬性,打開檢查器窗格並添加用戶信息參數。將密鑰設置爲spDisableSync,並將值設置爲1。這應該允許該實體的其餘部分與Simperium一起成功使用(如果您需要的話)。

相關問題