我正在使用imp_implementationForwardingToSelector lib将IMP转发到其他选择器。它在真实设备上工作正常但在我尝试为模拟器构建时出错
错误:架构x86_64的未定义符号
SEL forwardingSelector = NSSelectorFromString([NSString stringWithFormat:@"__supert__forwarding__%@__%@", className, methodName]);
SEL originalSelector = NSSelectorFromString(originalSelectorString);
IMP forwardingImplementation = imp_implementationForwardingToSelector(forwardingSelector, methodReturnsStructValue);
class_replaceMethod(class, originalSelector, method_getImplementation(method), typeEncoding);
method_setImplementation(method, forwardingImplementation);
是否有任何我缺失的设置或任何其他lib建议,这些设置将帮助我做同样的事情。
答案 0 :(得分:0)
如果您尚未添加#import <objc/runtime.h>
,请添加
正如“限制”中所引用的那样。在github页面上,这一定是你的情况,因为它在设备上运行但不能在模拟器上运行
imp_implementationForwardingToSelector是用原始程序集编写的 目前仅适用于i386,armv7,armv7s和arm64。