İçeriğe geç

LLDB ile Arayüz işlemleri

Merhabalar bu yazım ile birlikte uygulamanızdaki arayüz üzerindeki değişiklikleri tekrar build etmeden nasıl derleyebileceğinizi göstereceğim.

Bu işlem için lldb hata ayıklayıcısını kullanacağız ve tekrar tekrar run etmeden, renk, auto layout vs işlemlerinin nasıl göründüğünü inceleyebileceksiniz.

İlk olarak renklendirme vs işlemlerini canlı canlı görüntüleyelim.

(lldb) po self.view
▿ Optional<UIView>
  - some : <UIView: 0x7fa7be404ee0; frame = (0 0; 375 812); autoresize = W+H; layer = <CALayer: 0x600003276900>>

(lldb) expression unsafeBitCast(0x7fa7be404ee0, to: UIView.self).backgroundColor = .red
(lldb) expression CATransaction.flush()
(lldb)

Bu işlem için UIView adresimiz üzerinden işlem yaparak kullandım direkt olarak renk değişikliği yapabilirsiniz ancak bu yöntem ile adres üzerinden tüm eylemleri gerçekleştirebilirsiniz.

(lldb) po self.colorView.constraints
▿ 2 elements
  - 0 : <NSLayoutConstraint:0x600003524690 UIView:0x7fe93f40c650.width == 240   (active)>
  - 1 : <NSLayoutConstraint:0x600003525e50 UIView:0x7fe93f40c650.height == 128   (active)>

(lldb) expression self.colorView.translatesAutoresizingMaskIntoConstraints = false
(lldb) expression self.colorView.topAnchor.constraint(equalTo: self.view.topAnchor, constant: 0).isActive = true
(lldb) expression CATransaction.flush()
(lldb)

Bunun yanı sıra UIView üzerinde bulunan nesnelerin bilgilerini detaylı bir şekilde recursiveDescription ile öğrenebilirsiniz.

(lldb) po self.view.value(forKey: "recursiveDescription")
▿ Optional<Any>
  - some : <UIView: 0x7fe93f40c8b0; frame = (0 0; 375 812); autoresize = W+H; layer = <CALayer: 0x600001648ba0>>
   | <UIView: 0x7fe93f40c650; frame = (10 0; 240 128); autoresize = RM+BM; layer = <CALayer: 0x600001648ae0>>

(lldb)

 

Tarih:Debugging

İlk Yorumu Siz Yapın

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Copyright © 2020 Kenan Atmaca