如何从混合调用原始方法?
原始方法被代码替换:
[[UIWindow class] jr_swizzleMethod:@selector(originalMethod) withMethod:@selector(swizzledMethod) error:nil];
swizzledMethod上的以下代码进行递归!
[self originalMethod];
如何解决这个问题呢?
我使用以下库进行调配:
// JRSwizzle.h semver:1.0 // Copyright (c) 2007-2011 Jonathan 'Wolf' Rentzsch: http://rentzsch.com // Some rights reserved: http://opensource.org/licenses/MIT // https://github.com/rentzsch/jrswizzle #import <Foundation/Foundation.h> @interface NSObject (JRSwizzle) + (BOOL)jr_swizzleMethod:(SEL)origSel_ withMethod:(SEL)altSel_ error:(NSError**)error_; + (BOOL)jr_swizzleClassMethod:(SEL)origSel_ withClassMethod:(SEL)altSel_ error:(NSError**)error_; @end
解决方法
答案非常有趣:
[self swizzledMethod]; // will call originalMethod
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。