2009-05-22 20 views
1

我需要將日期時間保留在iPhone應用程序的C++結構中。時間將被保存並恢復到sqlite數據庫。什麼是最好的數據類型和相應的API? 我的候選人是:C++ struct成員,在iPhone上保留日曆時間的類型是什麼?

  1. time_t<ctime>結構tm<time.h>
  2. <NSDate.h>
  3. TimeValueNSTimeInterval從QuickTime的API

我的直覺是去與良好的OLE」 C/C++類型從<time.h>。在路上有什麼缺點?任何其他時間類型,我錯過了這是iPhone SDK的寵兒?

回答

3

NSTimeInterval和它的CoreFoundation對應CFAbsoluteTime是最好的使用值,因爲它們包括亞毫秒級精度(它們是雙精度浮點值)。 time_tstruct tm僅在某些BSD API中真正使用(並且在那裏更常見的是struct timevalstruct timespec)。 TimeValue僅用於表示媒體文件中的值和間隔,通常基於可配置的時基。

1

它完全取決於你正在使用的時間。

  • 你需要什麼精度?
  • 將存儲多少個? (平均/最差的情況下)

存儲儘可能多的精度,因爲你需要,但沒有更多。 (但也考慮未來的需求)。您不會將約會時間保存到最近的納秒 - 這是沒有意義的。但是,如果您正在記錄某些類型的數據,其中非常小的時間間隔很重要,那麼您可以將其保存到系統時鐘的精度(通常爲100納秒塊),或者甚至比稍微精確一點以允許具有更好時鐘的未來版本。

如果您只存儲少量數據(比如少於幾千),那麼存儲大小和訪問速度可能並不重要。如果您正在存儲多條記錄,則記錄的大小可能變得很重要。

除了上述考慮,它並不重要;只要它有明確的記錄。

我不熟悉sqlite數據庫。它有任何本地日期/時間類型?如果是這樣,那可能是最簡單的 - 只要它符合你的要求。

相關問題