0

SimperiumをiOSコアデータプロジェクトの1つに統合しようとするのはこれが初めてです。最初の同期はうまく機能しますが。次のログで、後の段階で大量のクラッシュが発生しています。

2013-03-26 18:40:08.460 APP [2468:ae03] * ** -[SPMemberDate diff:otherValue:]、/ path / to / simperium-ios-develop / Simperium / SPMemberDate.m:48でアサーションが失敗しました

2013-03-26 18:40:08.465 APP [2468:ae03] ***キャッチされなかった例外' NSInternalInconsistencyException 'が原因でアプリを終了します、理由:'シンペリウムエラー:クラスがNSDateではなかったため、日付を区別できませんでした'

SPMemberDate.mの48行目を占めるメソッドに[thisValue class]&の結果を出力すると、ある時点でthisValueがオブジェクトであり、otherValueがオブジェクトであることがわかります。[otherValue class]__NSDate__NSCFNumber

犯人オブジェクトの値は常に次のとおりです:-

1970-01-01 00:00:00 +0000にとってthisValue

0にとってotherValue

この問題を試してデバッグするために次にどこを見ればよいかわからなくなっています。NSDateの代わりにNSNumberを返すものは何でしょうか?そして、70年代からの日付を返すことができるでしょうか?私はかなりセラチンです、それは私のコードには何もありません。どんな助けでもいいでしょう。

4

2 に答える 2

0

1970年以降、時間間隔として数値を取得しています。

次の方法で日付に変換できます。

// The time interval 
NSTimeInterval theTimeInterval = ...;
// Get the system calendar
NSCalendar *sysCalendar = [NSCalendar currentCalendar];

// Create the NSDates
NSDate *date1 = [[NSDate alloc] init];
NSDate *date2 = [[NSDate alloc] initWithTimeInterval:theTimeInterval sinceDate:date1]; 
于 2013-03-26T14:25:59.477 に答える
0

iOSデバイス間でのみ同期していますか、それともWebアプリまたはバックエンドサービスにも同期していますか?現在、日付の値はネットワーク上の数値(1970年からの秒数)として送信されているため、iOS以外のデバイスからSimperiumに日付を送信する場合は、その形式を使用する必要があります。

ただし、Simperium iOSライブラリは、iOS上のNSDateとの間の変換を処理する必要があります。これはオープンソースなので、ダウンロードしてもう少し掘り下げて、何が問題になっているのかを確認できます: https ://github.com/Simperium/simperium-ios

于 2013-03-29T18:53:45.277 に答える