2014-05-11 72 views
0

下面的代碼片段取自更大的上下文。我想按創建時間的順序對文件進行排序。問題是d似乎在幾秒鐘內,儘管我猜NSDate的分辨率要高得多。在「iOS」文件系統中存儲時間的分辨率僅在幾秒鐘內?iOS文件時間戳的分辨率

這些文件是在幾毫秒內創建的,所以我需要更高的分辨率。有什麼建議麼?

for(NSURL *it in archFiles) 
{ 
    NSDate *date; 
    [it getResourceValue:&date forKey:NSURLCreationDateKey error:nil]; 
    double d = date.timeIntervalSince1970; 
    NSLog(@"%@: timestamp:%f", it.path, d); 
} 

打印輸出(I已經刪除的路徑的部分): /private/var/....archive: timestamp:1399819259.000000

我已經嘗試過在兩個「iPhone模擬器」和「ipad公司模擬器」具有相同的結果。我想最後的6個零不是純粹的巧合。 :)

只是想添加一個有效的日期時,我將鼠標懸停在調試器上的日期。

+0

可能重複[如何以毫秒級的精度獲取nsdate?](http://stackoverflow.com/questions/5359977/how-to-get-nsdate-with-millisecond-accuracy) – markhunte

+0

不,我沒有也這樣覺得。但都靈的答案證實了我的假設,我需要以另一種方式解決這個問題。 –

回答

0

NSDate的分辨率高於1秒。但是文件系統(iOS上的HSFX)沒有。因此,如果您閱讀文件的創建日期,則小數部分將始終爲零。

另外,您不輸出NSDate號碼。因此,最後的六個零是來自%f格式化模式的工件。

+0

是的,我知道這是一個雙,但我擔心失蹤的小數部分。爲了看看這種問題通常是如何解決的,我將這個問題持續一段時間。謝謝! –

+0

好吧,我想我會通過逐漸增加命名文件來解決我的問題,然後使用文件名對文件進行排序。就像其他人遇到這種情況一樣。 –