SORU
6 Ocak 2010, ÇARŞAMBA


'depolama en iyi yolu bu ne bir NSUserDefaults NSDate?

Karşıma çıkan NSUserDefaults bir NSDate saklamak için iki yol var.

Seçenek 1 - setObject:forKey:

// Set
NSDate *myDate = [NSDate date];
[[NSUserDefaults standardUserDefaults] setObject:myDate forKey:@"myDateKey"];

// Get
NSDate *myDate = (NSDate *)[[NSUserDefaults standardUserDefaults] objectForKey:@"myDateKey"];

Seçenek 2 - timeİntervalSince1970

// Set
NSDate *myDate = [NSDate date];
NSTimeInterval myDateTimeInterval = [myDate timeIntervalSince1970];
[[NSUserDefaults standardUserDefaults] setFloat:myDateTimeInterval forKey:@"myDateKey"];

// Get
NSTimeInterval myDateTimeInterval = [[NSUserDefaults standardUserDefaults] floatForKey:@"myDateKey"];
NSDate *myDate = [NSDate dateWithTimeIntervalSince1970:myDateTimeInterval];

Artıları ve Eksileri

Seçenek 1

Bu kompakt ve mantıklı gibi görünüyor. Ancak, bu konuda endişeli Date Formatter bugs çünkü yanlış var.

Seçenek 2

Bu beceriksiz gibi görünüyor. Ben de emin doğruluğundan - bir test yaptım, ne zaman çıkardığım tarih oldu ile 48 saniye rağmen, Apple Docs söyleyerek NSTimeİnterval "subsecond doğruluk".

Gereksinimleri

Her ne sebeble olursa olsun, olmalı:

  1. Kesin bir saniye içinde.

  2. Okunabilir ve güvenilir.

Benim Sorum

Ben yanlış bir şey yapıyorum, çünkü Seçenek 2 ile ilgilidir?

Ki bu iki seçenek kullanılabilir?

Farkında olmadığım başka bir seçenek var mı?

Teşekkürler!

CEVAP
6 Ocak 2010, ÇARŞAMBA


Gereksiz işleri karıştırıyor. Neden bir zaman aralığı için tarih (zaman farklı bir ilkel aralığı) çeviriyorsun? Sadece [sharedDefaults setObject:theDate forKey:@"theDateKey"] ve bu iş biter. NSDate "ana türleri sadece onu doğrudan depolamak böylece" PLİST biçimi (tarihler, sayılar, dizeleri, veri, sözlükler, diziler) tarafından desteklenen.

Kanıt the documentation bkz.

Sadece mağaza ve tarihi almak ve Doğru olanı (zaman dilimleri, hassas, vb) izlemek. Herkesin dediği gibi biçimlendirici hiçbir ilgisi yoktur.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • bigky226

    bigky226

    11 HAZİRAN 2006
  • Liberator

    Liberator

    14 EYLÜL 2007
  • MikeyMacintosh

    MikeyM

    28 Aralık 2009