iPhone - zaman dilimi rahatlık arasında Farklar yöntemleri
NSTimeZone
Bu yöntemleri olduğunu görüyorum
defaultTimeZone
localTimeZone
systemTimeZone
Birisi bana açıklayabilir misiniz, farkları bu çağrıları arasında, diğeri yerine kullanılması gereken basit açısından? Elma içinde herhangi bir şey hakkında bu dokümanlar anlamıyorum.
CEVAP
Dosyayı farklı dil kuru tarafında biraz, emin olmak için, ve isim benzerliği potansiyel olarak kafa karıştırıcı. NSTimeZone
docs burada alıntı ve bunları açıklamaya çalışacağım:
systemTimeZone
Zaman dilimi şu anda sistem tarafından kullanılır. Geçerli saat dilimi belirlenemiyor, GMT saat dilimini döndürür.
Bu zaman dilimi olan cihaz inanmaktadır olduğunu; bu genellikle otomatik olarak ayarlayın ve sonra da haberleşmek için cihazın fiziksel konumu, ama eğer kullanıcı açıkça ayarlanmış belirli bir zaman dilimi Ayarları App, bunu alacaksın.
defaultTimeZone
Geçerli uygulama için varsayılan saat dilimi. Eğer varsayılan bir saat dilimi belirlenmişse, bu yöntemsystemTimeZone
çağırır ve sistem zaman dilimini döndürür.
Uygulamanız eğer cihaz sistemi etkilemeden başka bir bölgede, ama sanki eylemleri gerçekleştirmek böylece kendi zaman dilimini ayarlamak için izin verilir zaman dilimi (ve böylece diğer uygulamalar). Ayarı setDefaultTimeZone:
bir çağrı ile yapılır. Eğer bunu yapmamış olsanız bile, bu Ara systemTimeZone
arama aynıdır.
localTimeZone
Mevcut bir uygulama için varsayılan saat dilimi ileten tüm mesajları nesnesi. Yerel saat dilimi her zaman varsayılan saat dilimi geçerli durumunu gösterir.
Bu biraz zor alır. localTimeZone
defaultTimeZone
yaklaşık olarak aynı sonucu verir. Farkı localTimeZone
olsun NSTimeZone
belirli bir örnek her zaman uygulama içinde saat dilimi için yaptığınız ayarı yansıtır. Bir kez arayıp, sonucu kaydedin ve her zaman o nesne, değişiklik yapılmış olursa olsun, üzerinden akım taklit saat dilimini elde edebilirsiniz. , NSTimeZone
Bu örnek kullandığınızda, çerçeve sizin için defaultTimeZone
çağrı ise, her zaman geçerli bir değer elde emin olmak gibi.
İşte yukarıdaki kısa çizimler bir çift. systemTimeZone
geri almak NSTimeZone
nesne arama yaptığınızda, sistem saat dilimini temsil eder. Eğer kullanıcı bu yana zaman dilimini değişmişse bile systemTimeZone
dersen,, aynısı olacaktır. Uygulamanıza değer önbelleğe alır ve sistemi resetSystemTimeZone
ile güncelleme almak temizlemek için sormalısınız.
// Say that device is in GMT originally
NSLog(@"%@", [NSTimeZone systemTimeZone]); // GMT
// User flies into Rome and iPhone changes the zone automatically
NSLog(@"%@", [NSTimeZone systemTimeZone]); // Still GMT
[NSTimeZone resetSystemTimeZone]; // Clear app's cache
NSLog(@"%@", [NSTimeZone systemTimeZone]); // Now GMT 2
Benzer bir şey defaultTimeZone
ile olur. Bu yöntemi çağırdığınızda, daha sonra setDefaultTimeZone:
çağrı bile hep aynı zaman dilimini gösteren bir nesne. Eğer localTimeZone
, aldığım nesne kullanırsanız, varsayılan yaptığınız bu değişikliği takip edecek zaman dilimi*.
// Say that defaultTimeZone is originally GMT
NSTimeZone * myDefaultTZ = [NSTimeZone defaultTimeZone];
NSTimeZone * myLocalTZ = [NSTimeZone localTimeZone];
[NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithName:@"Etc/GMT-4"]];
NSLog(@"%@", myDefaultTZ); // Still gives GMT
NSLog(@"%@", [NSTimeZone defaultTimeZone]); // GMT-4, the new value
NSLog(@"%@", myLocalTZ); // Also the new value!
Apple 30* localTimeZone
*gibi görünüyor:
localTimeZone sınıf yöntemi ile, kendi kendini bulduğu herhangi bir bilgisayarda varsayılan saat dilimi haline çözer bu göreceli bir zaman dilimi bir nesne alabilirsiniz.
localTimeZone
hala sistem saat dilimi app düzey önbellek tabi olduğunu unutmayın. Sadece sizin ayar değişiklikleri takip etmekvarsayılansaat dilimi.
&Quot;git commit" ve "git pu...
Nasıl bir dize temsilini kullanmadan a...
Nasıl XML için bir zaman dilimi seri h...
Fabrika Desen. Fabrika yöntemleri kull...
nasıl bir zaman dilimi kullanarak bir ...