使用KVC动态修改某个框架的功能.

有的时候框架提供的功能我们不想要,但是框架有没有属性让我们设置,这个时候强大的KVC就出现了
笔者在使用HUPhotoBrowser的时候,打开的轮播图提供的保存功能, 然而项目需要不需要这个功能. 通过分析源代码 下面的方法可以轻松解决这个问题, 避免我们迫不得已去改源代码.

HUPhotoBrowser *browser = [HUPhotoBrowser showFromImageView:[self.cycleScrollView valueForKey:@"_backgroundImageView"] withURLStrings:self.imageArr atIndex:index];
UIView *toolBarview = [browser valueForKey:@"toolBar"];
for (UIView *subView in toolBarview.subviews) {
    if ([subView isKindOfClass:[UIButton class]]) {
        [subView removeFromSuperview];
    }
}

小窍门
UIView 方法: recursiveDescription

可以显示出当前视图的详细层级结构,可以在代码中直接调用,也可以在GDB中调用,

断点后,在GDB中调用时需要借助另一个GDB命令:print-object:即我们常用的po

使用 po [self.view recursiveDescription];

推荐阅读更多精彩内容