Ben Xcode 7 beta kullanıyorum çıkıp Swift 2 hicret ettikten sonra atılan edilemez "Çağrı atabilir, ancak global değişken başlatıcıdan hata atılamaz" diyen bir hata mesajı alırsınız. Uygulamam, global bir değişken olması için recorder
belgesine dayanıyor. Küresel kalmanın bir yolu var mı, ancak bu sorunları düzeltmek mi? Gelişmiş hata işleme ihtiyacım yok, sadece çalışmasını istiyorum.Çağrı atabilir, ancak hatalar küresel değişken başlatıcısı
9
A
cevap
15
Eğer işlev çağrısı bir özel durum olmayacağını biliyorsanız, hata yayılma devre dışı bırakmak için try!
ile atma işlevini çağırabilirsiniz. Bir hatanın gerçekten atılması durumunda bunun bir çalışma zamanı istisnası atacağını unutmayın.
let recorder = try! AVAudioRecorder(URL: soundFileURL, settings: recordSettings as! [String : AnyObject])
Source: Apple Error Handling documentation (Disabling Error Propagation)
7
Bu sorunu çözmek için kullanabileceğiniz 3 yol vardır.
- Kullanarak isteğe bağlı AVAudioRecorder oluşturma?
- Size AVRecorder'ı iade edeceğini biliyorsanız, dolaylı kullanım deneyebilirsiniz!
- Ya sonra deneyin kullanma try/catch
kullanarak hatayı işlemek?
// notice that it returns AVAudioRecorder?
if let recorder = try? AVAudioRecorder(URL: soundFileURL, settings: recordSettings) {
// your code here to use the recorder
}
deneyin kullanma!
// this is implicitly unwrapped and can crash if there is problem with soundFileURL or recordSettings
let recorder = try! AVAudioRecorder(URL: soundFileURL, settings: recordSettings)
deneme/yakalama
// The best way to do is to handle the error gracefully using try/catch
do {
let recorder = try AVAudioRecorder(URL: soundFileURL, settings: recordSettings)
} catch {
print("Error occurred \(error)")
}
İlgili konular
- 1. Küresel değişken Tuhaflıklar
- 2. , XSLT'de küresel değişken bildirin lokal
- 3. Ruby on Rails - Küresel Değişken?
- 4. Swift 2: Çağrı atabilir, ancak 'try' ile işaretlenmez ve hata işlenmez
- 5. Swift 2: Çağrı atabilir, ancak 'try' ile işaretlenmez ve hata işlenmez.
- 6. Tanımsız değişken: hatalar - Laravel 5.2
- 7. Symfony2'nin: PHP şablonda Session Küresel değişken
- 8. BufferedReader'a göz atabilir miyim?
- 9. Değişken atanmış, ancak değer boştur
- 10. Hatalar
- 11. ajax çağrı başarısı ancak hiçbir veri döndürülmedi
- 12. Hangi başlatıcısı çalışıyor?
- 13. 'Nuget.Proxy Cache' tür başlatıcısı
- 14. VisualVM başlatıcısı hatası
- 15. Verilen statik başlatıcısı
- 16. IntelliJ ve Angular 2 Bağımsız Değişken Türü Atanmamış Hatalar
- 17. JavaScript küresel
- 18. İşlev Proxy .toString() Hatalar
- 19. UITextView öğesinin başlatıcısı
- 20. Java doğal başlatıcısı performansı
- 21. MVC4 WebAPI süreci başlatıcısı
- 22. Kod tarayıcıda işler ancak IBM Notes istemcisindeki hatalar
- 23. Elmah hata kaydı, sadece mesaj atabilir miyim?
- 24. Kurucuya bağlı olarak bir değer atabilir miyim?
- 25. Sütun filtreleri olmadan küresel filtreli küresel filtreler
- 26. Küresel 301
- 27. Küresel Rotasyon
- 28. Çağrı Bu kodu yaptık bir setInterval
- 29. Biçimlendirme Belirtildi, ancak bağımsız değişken değil IFormattable
- 30. Küresel Bir Dizi Nasıl Yapılır?