2012-02-20 35 views
12

Tôi có một tệp plist trong dữ liệu ứng dụng mà tôi muốn cập nhật từ máy chủ web mỗi 24 giờ. Có cách nào để kiểm tra khi tập tin được sửa đổi lần cuối hay tôi, theo cách nào đó đăng ký ngày và thời gian khi tôi cập nhật tập tin và sử dụng nó để so sánh?Nhận ngày sửa đổi tập tin cuối cùng của các tệp dữ liệu ứng dụng?

if (lastMod > currentDate){ 
    [arrayFromXml writeToFile:path atomically:YES]; 
} 

Trả lời

43

Bạn có thể sử dụng NSFileManager cho việc này:

NSDictionary *attributes = [[NSFileManager defaultManager] attributesOfItemAtPath:@"path/to/my/file" error:nil]; 

NSDate *date = [attributes fileModificationDate]; 

// compare 'date' 
// date > now 
if ([date compareTo:[NSDate date]] == 1) 
{ 
    [arrayFromXML writeToFile:@"path/to/my/file" atomically:YES]; 
} 
+0

'lỗi:' là một 'NSError **'. Nếu bạn không cần nó, bạn nên chuyển vào 'NULL', không phải' nil'. –

+0

@ H2Co3 Tôi cho rằng nếu bạn đang bị lừa đảo, vâng. Mặc dù tôi rất nghi ngờ rằng bất cứ ai trong thực tế sẽ bị nhầm lẫn. –

+0

@ RichardJ.RossIII AFAIK 'nil' và' NULL' mở rộng giống nhau trên iOS, đó là khái niệm khác biệt. –

-3

bạn có thể lưu trữ các NSDate trong NSUserDefaults khi saving..and sau đó so sánh nó với thời gian hiện tại để kiểm tra sự khác biệt ,,

+3

Có vẻ một bit overkill khi NSFileManager sẽ làm điều này cho bạn ... –

+2

có bạn là đúng (không biết điều đó) .. 1 cho bạn từ tôi ... – Shubhank

Các vấn đề liên quan