1

iPhone から iPad に変換する目的の C コードがいくつかあります。CFGregorianDate は、日付関数全体で使用されます。NSDateを使用することを好み、使用したことはありません。

日付を取得してフォーマットしたいので、フォーマット文字列「MMMM」を使用して完全な月名を取得しますが、これは CFGregorianDate を使用して行うことができないようです。

2つの違いは何ですか?また、使用方法に違いはありますか?

4

1 に答える 1

1

ドキュメントから:

CFDate は、Cocoa Foundation の対応する NSDate と「無料でブリッジ」されています。これが意味することは、Core Foundation 型は、ブリッジされた Foundation オブジェクトと関数またはメソッド呼び出しで交換可能であることです。つまり、NSDate * パラメータがあるメソッドでは CFDateRef を渡すことができ、CFDateRef パラメータがある関数では NSDate インスタンスを渡すことができます。これは、NSDate の具象サブクラスにも適用されます。

というわけで、使い方に違いはありません。主な違いは、CFDate とそのサブクラスがレガシー型であることです。

しかし、ご指摘のとおり、CFGregorianDateとは大きく異なりCFDateます。タイムスタンプを保存するのではなく、年、月、日、時、分、秒を個別の整数として保存します。

したがって、最善の策は、cfGregorianToNSDate:これらの整数を解析して新しいNSDateオブジェクトを構築するようなメソッドを作成することです。

于 2012-06-19T15:14:45.587 に答える