ios - 如何从 swift 访问 Objective C 混淆类

标签 ios objective-c swift

我有一个项目,我同时使用了 Objective C 和 Swift。 出于安全原因,对于一些用 Objective C 编写的类和方法,我使用了混淆。

这是我的代码:

#ifndef AccessManager_h

#define AccessManager ySbIXoscpewLLSwVacDpZvPvQeNDtG
#define loginWithUsername TEWhYyXaCdGrCViPbZZHWXoBiUPvPn

#endif

@interface AccessManager : AFHTTPSessionManager

-(void)loginWithUsername:(NSString*)username password:(NSString*)password success:(WSSuccessBlock)success failure:(WSFailureBlock)failure;

@end

这是我试图访问混淆类的快速代码

AccessManager.instance().login(withUsername: "my_user", password: "password", success: { (response) in
        //TODO
    }) { (error) in
        //TODO
    }

这是我在构建项目时遇到的错误

Undefined symbols for architecture armv7:
"_OBJC_CLASS_$_AccessManager", referenced from:
      objc-class-ref in MySwiftClass.o
ld: symbol(s) not found for architecture armv7
clang: error: linker command failed with exit code 1 (use -v to see invocation)

如何访问从 Swift 混淆的 Objective C 类?

最佳答案

如果你想使用像这样的预处理器-

#define ABC DEF

其中 DEF 是类名。 您需要在您的桥接 header 中导入此文件,然后按如下方式定义它:

typedef DEF* ABC;

可以引用this answer

Swift 无法理解定义的预处理器的类型,这就是您无法使用它的原因。

关于ios - 如何从 swift 访问 Objective C 混淆类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46357895/

相关文章:

iOS 如何创建类似于 Twitter 心形按钮的动画按钮?

ios - 快速处理所有未处理的异常

ios - 执行从 tableview 到 viewcontroller 的 segue 时出现问题

iphone - 更改 TableView 上 UISearchBar 的宽度

ios - 即使调用了 didDetermineState,也未调用 dirangebeacons

objective-c - 有没有办法从应用程序本身到 'self-destruct'?

iphone - 如何在应用程序运行之间本地检测用户的 iPhone 时钟进度?

swift - 如何反转as?语句和链两个作为?操作

iOS/Swift/Spritekit 在我在该 View Controller 中呈现新场景后,场景是否会删除数据?

objective-c - 为什么我向同一个方向快速滑动两次时,UIScrollView 会剧烈滚动?