2017-03-24 24 views
1

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]; 

を私はCoreDataNSDateとして日付を格納していないことを認識しますがどのように正確にそれが保存され、どのように私は警告を回避するのですか?

CoreDataエンティティ:

enter image description here

UPDATE:

エラーがobsLastUpdatedがNSStringのように宣言されたクラスにいました。 NSDateに変更され、すべてが順調です。

+0

コアデータモデルのエンティティのスクリーンショットをご提示ください。 – Fogmeister

+0

次に、Stringを持つためのコアデータモデルを作成しました。日付ではありません。コアデータモードのスクリーンショットを表示できますか?また、オブジェクトコードも含めてください。 – Fogmeister

+0

とそのクラスのコードは?何かが間違っている。何が間違っているか教えてください。正しいものではありません。 :-)コアデータの日付として属性を設定すると、NSDateを返します。クリーンなビルドを行ったことを確認しましたか?あなたは最近、文字列から日付に変更しましたか? – Fogmeister

答えて

0

単にNSDate、ないNSStringとして定義:

MyEntity *entity = [self.recordDetails first]; 

NSDate *iPadDate = entity.obsLastUpdated; 
関連する問題