SORU
4 AĞUSTOS 2014, PAZARTESİ


UİAlertView/UİAlertController iOS 7 ve iOS 8 uyumluluğu

Hızlı bir uygulama yazmak için kullanıyorum ve bir uyarı göstermek istiyorum. Uygulama iOS 7 ve iOS 8 uyumlu olmalıdır. UIAlertView UIAlertController UIAlertController sistem sürümü kontrol etmeden varsa kontrol edebilirim? ile değiştirilmiştir beri Apple bir API olup olmadığını öğrenmek için cihazın sistem sürümünü kontrol etmeliyiz önerir bu işitme.

Bu iOS 7 ama bu çöker iOS 8 için kullanıyorum "dyld: Symbol not found: _OBJC_CLASS_$_UIAlertAction" :

let alert = UIAlertController(title: "Error", message: message, preferredStyle: .Alert)
let cancelAction = UIAlertAction(title: "OK", style: .Cancel, handler: nil)
alert.addAction(cancelAction)
presentViewController(alert, animated: true, completion: nil)

Ben iOS için UİAlertView bu uyarıyı alıyorum 8, kullanın: Warning: Attempt to dismiss from view controller <_UIAlertShimPresentingViewController: 0x7bf72d60> while a presentation or dismiss is in progress!

CEVAP
17 AĞUSTOS 2014, Pazar


Algılama desen Objective-C tarzı aynıdır.

Geçerli etkin çalışma zamanı bu sınıfın örneğini oluşturmak için yeteneğine sahip olup olmadığını belirlemek gerekir

if objc_getClass("UIAlertController") != nil {

     println("UIAlertController can be instantiated")

      //make and use a UIAlertController

 }
 else {

      println("UIAlertController can NOT be instantiated")

      //make and use a UIAlertView
}

Sakın iş bu işletim sistemi sürümüne bağlı. Yetenekleri tespit etmek gerekirDEĞİLOS.

EDİT

Bu cevap NSClassFromString("UIAlertController") orijinal dedektörü geçerli sürüme Değiştirilmiş Sürümü için çalışır kendi kurmak -O optimizasyon altında başarısız olur

2 DÜZENLEYİN

NSClassFromString Güncellemelerinden tüm iyileştirmelere 6.3/Swift 1.2 de çalışıyor

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • 0TACTICAL0HIPPY0

    0TACTICAL0HI

    30 EYLÜL 2012
  • Jon Reed

    Jon Reed

    14 AĞUSTOS 2006
  • megablueblaster

    megablueblas

    23 HAZİRAN 2006