Ölümcül hata: uygulanmayan başlatıcı 'init' derse kullanımı
Swift dili ile kalan projeme devam etmeye karar verdim.Özel Sınıf eklediğim zaman (.benim müzik sınıfı UİViewcontroller için alt eden swift sınıfı) viewcontroller ve proje aniden hata şu: app crash yüklendi
fatal error: use of unimplemented initializer 'init(coder:)' for class
Bu bir kod
import UIKit
class TestViewController: UIViewController {
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// Custom initialization
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
/*
// #pragma mark - Navigation
// In a storyboard-based application, you will often want to do a little preparation before navigation
override func prepareForSegue(segue: UIStoryboardSegue?, sender: AnyObject?) {
// Get the new view controller using [segue destinationViewController].
// Pass the selected object to the new view controller.
}
*/
}
Lütfen bir şey Öner
CEVAP
Sorun
Mevcut çalıştığınız destinationViewController
initWithCoder
yöntemi eksik.
viewController
örneğini çağrılır initWithCoder
yöntem, bu gibi UIStoryboard
yönlendirme: Instantiate and Present a viewController in Swift
Sorununu birbirinden farklı başlatıcı davranışlara yol açtığı gibi görünüyorSwiftveObjective-C.
Çözüm
Objective-Cotomatik olarak destinationViewController eklemek ihtiyacımız yok, bu yüzden initWithCoder
devralır.
Swifteğer init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?)
destinationViewController varsa init(coder aDecoder: NSCoder!)
ekleme gerektirir.
1. İlk yöntemi
Elle ekleyerek init(coder aDecoder: NSCoder!)
uygulama aşağıda destinationViewController için kod.
init(coder aDecoder: NSCoder!) {
super.init(coder: aDecoder)
}
2. İkinci yöntem
DestinationViewController edecektir init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?
kaldırma @ gibi üst sınıf gerekli başlatıcılar tüm devralırDave Wooddikkat çekti.
//Code to be removed from your destinationViewController
init(nibName nibNameOrNil: String?, bundle nibBundleOrNil: NSBundle?) {
super.init(nibName: nibNameOrNil, bundle: nibBundleOrNil)
// Here you can init your properties
}
Bazen bu durumda ilk yöntem için sopa gerekir, bu yüzden bunlardan birine ihtiyacım var, böylece kendi değerlerini başlatma için gereklidir.
Ölümcül hata: yerel homurtu bulunamadı...
PHP Ölümcül hata: tanımlanmamış işlev ...
Homurtu izle hata - Bekleyen...Ölümcül...
Memcached PHP Ölümcül hata: Sınıf ...
ölümcül hata LNK1112: modül makine tip...