iPadのCoreData
に保存された同じレコードのウェブサイトで、レコードが最後に更新されたときを比較するルーチンがあります。ここでは、obsLastUpdatedはCoreDataのフィールドで、タイプはDate
です。 NSDateにCoreData
からデータを読み取るCoreDataの日付 - 日付または文字列の形式は何ですか?
:
NSDate *iPadDate = [[self.recordDetails objectAtIndex:0] obsLastUpdated]; //gets the date from CoreData
私はこの警告を得る:タイプの発現 'NSStringの*' と 'NSDateを*' 初期化
互換性のないポインタ型を
これは単なる警告ですが、すべてが動作します。このNSDate
とiPadDateを別のNSDate
と比較しようとすると、エラーはなく、すべて正常に機能します。しかし、私は警告の一番下に行きたいと思います。
CoreData
から文字列を読み取り、NSDate
に変換すると、フォーマットが正しく行われず、アプリケーションがクラッシュすることがあります。私が試してみました:
NSString *iPadDateStr = [[self.recordDetails objectAtIndex:0] obsLastUpdated];
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"];
NSDate *iPadDate = [dateFormat dateFromString: iPadDateStr];
を私はCoreData
がNSDate
として日付を格納していないことを認識しますがどのように正確にそれが保存され、どのように私は警告を回避するのですか?
CoreDataエンティティ:
UPDATE:
エラーがobsLastUpdatedがNSStringのように宣言されたクラスにいました。 NSDateに変更され、すべてが順調です。
コアデータモデルのエンティティのスクリーンショットをご提示ください。 – Fogmeister
次に、Stringを持つためのコアデータモデルを作成しました。日付ではありません。コアデータモードのスクリーンショットを表示できますか?また、オブジェクトコードも含めてください。 – Fogmeister
とそのクラスのコードは?何かが間違っている。何が間違っているか教えてください。正しいものではありません。 :-)コアデータの日付として属性を設定すると、NSDateを返します。クリーンなビルドを行ったことを確認しましたか?あなたは最近、文字列から日付に変更しましたか? – Fogmeister