Kodumu Swift 3'e taşıdıktan sonra bir soruna girdim. Artık iOS10 yeni sorunları gündeme getiriyor ve aslında Swift'in kendisi ile ilgili değil.Swift UIViewReportBrokenSuperviewÇalışan neden Layer manipülasyonu
hatası: sorunu tetikleyen kod
*** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'View has lost track of its superview, most likely through unsupported use of CALayer API on the view's layer. If this isn't a crash yet, it will be in the near future.
Problem view: <UIToolbar: 0x102552d80; frame = (0 0; 375 683); alpha = 0.97; opaque = NO; layer = <CALayer: 0x1700383e0>>
Expected parent: <MyModelView: 0x10250ecd0; frame = (0 -16; 375 683); hidden = YES; layer = <CALayer: 0x17003d4a0>>
Break on UIViewReportBrokenSuperviewChain to debug.'
olduğunu
:- (void)addBlurView
{
CGRect viewBounds = [[UIScreen mainScreen]applicationFrame];
self.myModelView = [[MyModalView alloc] initWithFrame:CGRectMake(viewBounds.origin.x, -16, viewBounds.size.width, viewBounds.size.height+36)];
if(![self toolbar]) {
_toolbar = [[UIToolbar alloc] initWithFrame:[self.myModelView bounds]];
[_toolbar setBarStyle:UIBarStyleBlack];
_toolbar.alpha = 0.97;
[self.myModelView.layer insertSublayer:_toolbar.layer atIndex:0];
}
[self.view addSubview:self.myModelView];
}
Neden katman hiyerarşisini yönlendiriyorsunuz? Belki de bir araç çubuğunu myModelView'ın bir alt görünümü olarak eklemek ve bu problemden emin olmak ister misiniz? – slashdot
Eh, bu eski kod, bu yüzden sorunu düzeltmeye çalışıyorum. Şimdilik insertSublayer sorununu yeni kaldırdım. Saydamlık geçmişi elde etmenin bir çeşit hile olduğunu anladım. Görünüşe göre bu bilinen bir hiledir, ancak bu uygulama yeni bir uygulamada çökmesini sağlar. Bu gönderiyi bitirir bitirmez güncelleyeceğim. – Mikael
Merhaba @Mikael "Hata ayıklamak için UIViewReportBrokenSuperviewChain". Bunun ne anlama geldiğini biliyor musun? Bu hatayı da aldım ve iyi belgelenmiş değil. –