swizzling

    0热度

    1回答

    是否有可能将使用它的所有对象的方法替换为协议的实现? 的方法是canPerformAction:(SEL)action withSender:(id)sender: - (BOOL)myCanPerformAction:(SEL)action withSender:(id)sender { return NO; } 最初的问题:不能禁用“剪切,复制,粘贴”和“选择,全选”上UIWe

    0热度

    1回答

    我想学习搅拌的概念。 尽管我已经添加了method_exchangeImplementations,但方法仍未调整。任何想法,我要去哪里错了? #import <objc/runtime.h> @interface POCViewController() - (void)addSwizzle; - (void)originalMethod; - (void)swizzledMethod

    1热度

    1回答

    我想拦截iOS上的文件读/写,为我的某些应用程序提供透明加密/解密功能。 我知道我可以调整各种SDK方法读/写文件来做到这一点,但这需要很多努力工作,并且容易出错(我可能会错过某些方法的调整,导致我的应用程序崩溃/行为不端)。 如果所有这些方法都使用了一些常用的系统调用/函数,那么我宁愿调整它,节省一些辛苦的工作+使其更加万无一失。有没有这种共同的入口点? PS:由于所有这些应用程序都用于企业内部

    5热度

    1回答

    我试图实施ISA swizzling,因为我需要一些行动发生在某些对象的dealloc方法。我最重要的是 - (班)班;方法返回原始类(如同KVO一样)。一切工作正常,直到我尝试添加观察员到swizzled对象。它只是崩溃。 [:forProperty:选择:上下文:NSObject的(NSKeyValueObserverRegistration)_addObserver]() 0x0092d6f

    2热度

    1回答

    我想调整一个函数,并调用与函数参数的原始实现。 新IMP的形式为: static id WrapperFunction(id self, SEL _cmd, ...) { va_list args; va_start(args, _cmd); originalImp(self, _cmd, args); ... } 这显然是错误的,因为现在args包

    1热度

    1回答

    我有一个自定义容器视图控制器,用于管理我的应用程序的视图层次结构。我知道每个控制器都是这个容器控制器的某个孩子。我认为在UIViewController上有一个允许我访问容器控制器的类别会很好,不管我在层次结构中的哪个位置。 这涉及递归控制器层次结构,所以我认为这将是一个很好的尝试,只有这样做,每个控制器走一次。因此,通过objc_setAssociatedObject,我找到容器并设置了一个标志

    0热度

    1回答

    我在swizzling复制:粘贴:UIResponder的方法。 我必须将复制的内容写入私人粘贴板。 - (void)copyToPrivatePasteboard:(id)sender { UIPasteboard *privatePasteboard = [self getPrivatePasteboard]; [privatePasteboard setString:@

    0热度

    1回答

    我有一个类swizzles UIButton的时buttonType是UIButtonTypeCustom是真的。 但是,在涉及到UITableViewCellAccessoryCheckmark和UITableViewCellAccessoryDisclosure时也是如此。出于某种原因,出于某种原因,它会搅乱它们,并在accessoryType之后添加自定义背景等等。 我需要做的是检查我试图搭

    2热度

    1回答

    我跟着本文中的说明创建静态库: http://developer.apple.com/library/ios/#technotes/iOSStaticLibraries/Articles/creating.html 我建立了它的iPhone模拟器目标。它成功构建,然后导入到我想要使用它的新项目中。它进口很好,没有问题,但图书馆不工作。没有我打电话的图书馆方法;相反,库的目的是调整UIViewCon

    3热度

    1回答

    我刚刚将我的应用程序切换到ARC。由于Xcode提供的重构工具,转换部分成功。一部分不起作用是一个奇怪的错误。 我使用方法swizzling(method_exchangeImplementations),以便调用UIView的initWithFrame而不是调用myInitWithFrame代码。重构过程在myInitWithFrame的方法声明处抛出错误,所以我在方法声明之后添加了__ 属性