recursiveDescription
çok kullanışlıdır. Görünüm denetleyicisi hiyerarşileri de çok önemlidir, bunun için bir eşdeğer var mı?Görünüm denetleyici hiyerarşisi için bir yinelemeli Yazma yöntemi var mı? Görünüm hiyerarşisini ayıklarken
cevap
Güncelleştirme - Benzer işlevsellik, Apple tarafından sağlanan formda _printHierarchy
yöntemi olarak kullanıma sunulmuştur, bu nedenle artık bu kategoriye ihtiyacınız yoktur.
şimdi yok:
Github: Recursive description category for view controllers.
Bu, görünüm denetleyicisi sıradüzenini basan UIViewController
için recursiveDescription
yöntemini ekler. Çocuk görüş kontrol cihazlarınızı düzgün ekleyip ekleyip eklemediğinizi kontrol etmek için mükemmeldir.
kodu, burada yanı sıra GitHub Yukarıdaki bağlantı çok basit dahildir:
@implementation UIViewController (RecursiveDescription)
-(NSString*)recursiveDescription
{
NSMutableString *description = [NSMutableString stringWithFormat:@"\n"];
[self addDescriptionToString:description indentLevel:0];
return description;
}
-(void)addDescriptionToString:(NSMutableString*)string indentLevel:(NSInteger)indentLevel
{
NSString *padding = [@"" stringByPaddingToLength:indentLevel withString:@" " startingAtIndex:0];
[string appendString:padding];
[string appendFormat:@"%@, %@",[self debugDescription],NSStringFromCGRect(self.view.frame)];
for (UIViewController *childController in self.childViewControllers)
{
[string appendFormat:@"\n%@>",padding];
[childController addDescriptionToString:string indentLevel:indentLevel + 1];
}
}
@end
kısaca cevabı koymak için, ben görünümü denetleyicisi hiyerarşi yazdırmak için XCode en ayıklayıcı konsolunda aşağıdaki komutu kullanın:
po [[[UIWindow keyWindow] rootViewController] _printHierarchy]
PS Bu yalnızca ios8 ve üstü için çalışır ve yalnızca hata ayıklama amaçlıdır. Bana bu ve diğer pek çok parlak ayıklama teknikleri keşfetmeye yardımcı yazıya
Bağlantısı'dır this
Düzenleme 1: sen tarafından hiyerarşiyi yazdırabilirsiniz Swift 2'de :
UIApplication.sharedApplication().keyWindow?.rootViewController?.valueForKey("_printHierarchy")
Düzenleme 2: Swift 3'te hiyerarşiyi şu şekilde yazdırabilirsiniz:
UIApplication.shared.keyWindow?.rootViewController?.value(forKey: "_printHierarchy")
Swift: 'UIApplication.sharedApplication(). KeyWindow? .rootViewController? .valueForKey (" _ printHierarchy ")' –
Teşekkürler. Onu cevaba ekleyeceğim. – jarora
hızlı yöntemi (lldb/Xcode ayıklayıcısında):
po [UIViewController _printHierarchy]
_printHierarchy VC görüşüne alt görünüşüdür bileşeni için yinelemeli hakkında bilgi sağlamamaktadır.
Yaklaşım 1: Tam görünüm hiyerarşisini almak için lldb komutunu kullanın.
po [[[UIApplication sharedApplication] keyWindow] recursiveDescription]
Yaklaşım 2: iyi yolu XCode ayıklananları “ayıklama Görüntüle Hiyerarşi” düğmesini kullanarak tüm bilgileri almak için.
Erm, bu güzel, ama soru özellikle recursiveDescription ve görüntü denetleyici hiyerarşisi için bir eşdeğer arıyorum bahseder. – jrturton
- 1. PresentModel Görünüm Denetleyici Sorunu
- 2. Görünüm + denetleyici + stili dahil
- 3. Görünüm için şartlı CSS var mı?
- 4. CakePHP - Görünüm ve Modelsiz Denetleyici
- 5. Asp.Net MVC'de bir görünüm var mı?
- 6. asp.net mvc3 - Denetleyici yöntemi döndürür Görünüm (viewName, string) ancak gariplik
- 7. Görünüm Denetleyici Top Çubuk düzenlenmiyor
- 8. Sql Server - Var olan görünüm için görünüm oluşturma ifadesi alın
- 9. şuna benzer bir görünüm hiyerarşisi Verilen Boyut Kısıtlar
- 10. Görünüm
- 11. Sadece bir görünüm hiyerarşisi oluşturan orijinal konu görünümlerine dokunabilir.
- 12. ActiveModel - Görünüm - Denetleyici ActiveRecord yerine Rails?
- 13. Activity.addContentView (Görünüm) == ViewGroup.addContentView (Görünüm)?
- 14. NASIL? Denetleyici hiçbir şey/geçerli görünüm döndürür
- 15. Görünüm denetleyici boyutumu neden frameOfPresentedViewInContainerView ile tanımlamıyor?
- 16. Özel görünüm/eylem/denetleyici çalışmıyor Yelkenler JS
- 17. Asp.Net'de Görünüm içinde Görünüm Oluşturma mvc
- 18. Parça geçişleri için bir "setSharedElementsUseOverlay()" yöntemi var mı?
- 19. Görünüm
- 20. ViewModel'imin Gözlemlenebilir Bir Görünüm veya GörünümModelleri Var mı?
- 21. Görünüm AngularJS
- 22. android imha edildiğinde herhangi bir görünüm geri arama var mı?
- 23. Varolan bir Görünüm bir denetleyici eylemine nasıl eklenir?
- 24. EditText.setError Odaklanmayan bir görünüm için
- 25. Yinelemeli kapatma kullanarak bir listeden bir ağaç hiyerarşisini nasıl oluşturabilirim?
- 26. Karma bir MVC/WebForms ASP.NET uygulamasında "Denetleyici Ekle"/"Görünüm Ekle"
- 27. Özel MVC, denetleyici için bir render işlevinin nasıl uygulanacağı, böylece Görünüm Denetleyici tarafından ayarlanan değişkenlere erişebilir
- 28. Bir Görünüm görünmez durumdayken dokunma algılanır mı?
- 29. Izgara için FieldBinding. Görünüm
- 30. Deposu görünüm modelinde kullanmak tamam mı?
+1,5 Eh, efendim oynadı. – Caleb