SORU
26 Temmuz 2010, PAZARTESİ


Nasıl kontrol etmek için iOS sürümü?

Eğer cihazın iOS sürümü 3.1.3daha büyük olup olmadığını kontrol etmek istiyorum Gibi şeyler denedim:

[[UIDevice currentDevice].systemVersion floatValue]

ama çalışmıyor, ben sadece istiyorum:

if (version > 3.1.3) { }

Bunu nasıl başarabilir?

CEVAP
26 Temmuz 2010, PAZARTESİ


Hızlı cevap

İOS 8 ve üzeri [[NSProcessInfo processInfo] operatingSystemVersion].

Ancak, cihaz ya da işletim sistemi yetenekleri bir göstergesi olarak işletim sistemi sürümü güvenmekten kaçınmalısınız. Genellikle belirli bir özellik veya sınıf mevcut olup olmadığını kontrol ediniz ve daha güvenilir bir yöntem yoktur.

API varlığını kontrol:

Örneğin, eğer UIPopoverController geçerli aygıt NSClassFromString kullanarak üzerinde kullanılabilir olup olmadığını kontrol edebilirsiniz:

if(NSClassFromString(@"UIPopoverController")) {
    // Do something
}

Zayıf bağlantılı sınıfları için güvenli sınıf, doğrudan mesaj. Özellikle, bunu açıkça bağlı olmayan çerçeveler için çalışıyor "". Gerekli Eksik sınıfları için, ifade, sıfır, durumu başarısız olarak değerlendirilir:

if([LAContext class]) {
    // Do something
}

Bazı sınıflar, CLLocationManager UIDevice gibi yöntemler aygıt yeteneklerini kontrol etmek için sağlar:

if([CLLocationManager headingAvailable]) {
    // Do something
}

Semboller varlığını kontrol:

Çok nadir, bir sabit olup olmadığını kontrol etmelisiniz. Bu -openURL: ile UIApplicationOpenSettingsURLString Ayarlar app yüklemek için kullanılan bir giriş ile iOS 8'de geldi. Değer iOS 8 öncesinde yoktu. Bu API nil geçen bakım sürekli ilk: varlığını doğrulamak için alması gereken şekilde kalabilir

if (&UIApplicationOpenSettingsURLString != NULL) {
    [[UIApplication sharedApplication] openURL:[NSURL URLWithString:UIApplicationOpenSettingsURLString]];
}

İşletim sistemi sürüm karşı karşılaştırılması:

Hadi nispeten nadir işletim sistemi sürüm kontrol etmek ihtiyacı ile karşı karşıya olduğunuzu varsayalım. Projeler iOS hedefleme ve üstü için 8, NSProcessInfo hata daha az şansı olan: sürüm karşılaştırmalar yapmak için bir yöntem içerir

- (BOOL)isOperatingSystemAtLeastVersion:(NSOperatingSystemVersion)version

Projeler eski sistemler hedefleme UIDevice systemVersion kullanabilirsiniz. Apple GLSprite örnek kodu kullanır.

// A system version of 3.1 or greater is required to use CADisplayLink. The NSTimer
// class is used as fallback when it isn't available.
NSString *reqSysVer = @"3.1";
NSString *currSysVer = [[UIDevice currentDevice] systemVersion];
if ([currSysVer compare:reqSysVer options:NSNumericSearch] != NSOrderedAscending)
    displayLinkSupported = TRUE;

systemVersion istediğin bu karar ne olursa olsun, patch sürüm numarası (örn. . kesiliyor riskli bir dize olarak tedavi etmek için emin olun ya da eğer 3.1.2 ->3.1).

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Paul Schroder

    Paul Schrode

    30 Kasım 2007
  • Samvith V Rao

    Samvith V Ra

    20 EKİM 2006
  • TheXiaxue

    TheXiaxue

    3 AĞUSTOS 2009