构建模拟器时,体系结构x86_64的未定义符号

时间:2016-04-17 12:24:13

标签: ios objective-c iphone method-swizzling

我正在使用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建议,这些设置将帮助我做同样的事情。

1 个答案:

答案 0 :(得分:0)

如果您尚未添加#import <objc/runtime.h>,请添加

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

  

imp_implementationForwardingToSelector是用原始程序集编写的   目前仅适用于i386,armv7,armv7s和arm64。