參考自 http://www.reibang.com/p/79468a2eb6db ,這里記錄僅供自己方便查閱妆够, 版權(quán)歸原作者所有。
如果你想快速高效調(diào)試IOS程序不妨學(xué)習(xí)下LLDB插件-Chisel,如果你使用過po,p等調(diào)試命令书斜,是否覺得它們還是太弱,想知道一個view的層級還要使用code去打咏褪埂(雖然我也這樣干過)荐吉,簡直不能忍受,下面就讓Chisel來解救你吧口渔。
1.Chisel的安裝
Github地址:https://github.com/facebook/chisel
Chisel的安裝非常簡單样屠,你只要安裝了homebrew環(huán)境,一切都是那么自然輕松缺脉。
1. brew update
2. brew install chisel
安裝完成后terminal最后出現(xiàn)一個安裝目錄痪欲,類似
command script import /usr/local/opt/chisel/libexec/fblldb.py
這時候你只需要~/.lldbinit文件(如沒有,則新建一個)中添加
command script import /usr/local/opt/chisel/libexec/fblldb.py
這句即可攻礼。
然后重啟Xcode
2.內(nèi)置命令
2.1 pviews
這個命令可以打印一個view的層級业踢,如:
(lldb) pviews self.window
|<UIWindow: 0x7fd5b6816780; frame = (0 0; 375 667);
gestureRecognizers = <NSArray: 0x7fd5b6817770>;
layer = <UIWindowLayer: 0x7fd5b68263f0>>
| <UILayoutContainerView: 0x7fd5b6941780;
frame = (0 0; 375 667); autoresize = W+H; gestureRecognizers = <NSArray: 0x7fd5b694fc10>; layer = <CALayer: 0x7fd5b6931250>>
| <UINavigationTransitionView: 0x7fd5b6949620; frame = (0 0; 375 667); clipsToBounds = YES;
autoresize = W+H;
layer = <CALayer: 0x7fd5b6946e20>>
2.2 pvc
pvc可以打印一個viewcontroller的層級,而不是view 如:
(lldb) pvc self.mMDrawerController**
<MMDrawerController: 0x7fd5b658b8c0;
view = <UIView; 0x7fd5b658cd00>; frame = (0, 0; 375, 667)>
| <SampleAlbumListVC: 0x7fd5b658bc90;
view = <UIView; 0x7fd5b66be7a0>; frame = (0, 0; 375, 667)>
| <SlideMenuVC: 0x7fd5b6589b50;
view = <UIView; 0x7fd5b684f790>; frame = (inf, inf; 0, 0)>
2.3 visualize
visualize這個命令比較強大礁扮,它可以使用預(yù)覽App打開UImageView CGImageRef UIView CALayer 如:
visualize uiimageview
2.4 fv & fvc
這兩個命令是用來通過類名搜索當前內(nèi)存中存在的view和viewController實例的命令知举,支持正則搜索瞬沦。
(lldb) fvc mm
0x7fd5b658b8c0 MMDrawerController
(lldb)fv cate
0x7fd5b6e06920 AlbumCategoryView
0x7fd5b6d63f80 AlbumCategoryView
0x7fd5b6d66e60 AlbumCategoryView
0x7fd5b6d69d40 AlbumCategoryView
0x7fd5b6d6cc20 AlbumCategoryView
0x7fd5b6e0a150 AlbumCategoryView
2.5 show & hide
這兩個命令用來顯示和隱藏一個指定的 UIView
(lldb) show self.view
(lldb) hide self.view
也可以使用內(nèi)存地址隱藏和現(xiàn)實view,比如通過 fv cate找到一個view后使用hide隱藏它
(lldb)fv cate
0x7fd5b6e06920 AlbumCategoryView
(lldb) hide 0x7fd5b6e06920
常用的就這些命令,當然你也可以自定義Chisel命令雇锡,但是需要你了解點python逛钻,由于我不懂 所以就略過了.....