0

我正在使用imp_implementationForwardingToSelector库将 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 建议可以帮助我做同样的事情。

4

1 回答 1

0

#import <objc/runtime.h>如果您还没有添加,请添加

正如github页面上的“限制”中所引用的那样,这对您来说一定是这种情况,因为它在设备上运行但不能在模拟器上运行

imp_implementationForwardingToSelector 是用原始程序集编写的,目前仅在 i386、armv7、armv7s 和 arm64 上可用。

于 2016-04-17T14:47:02.737 回答