SwiftUI 集成 IMKit 源码解决方案

在 SwiftUI 工程中, 直接将IMKit 源码拖入工程中, 无法完成编译, 您可能需要注意以下几个问题:

1. 找不到 IMKit 中对应的类

这是由于 IMKit 是 OC 代码, 无法在 swift 中直接使用, 需要在 bridge 文件中提前声明一下, 如:

#ifndef SwiftUIDemo_Bridging_Header_h
#define SwiftUIDemo_Bridging_Header_h

#import "RCIM.h"
#import "RCConversationListViewController.h"
#endif /* SwiftUIDemo_Bridging_Header_h */

2. Unknown type name ‘RCUserAvatarStyle’

出现该问题的原因是 RCThemeDefine.h 是 c 头文件, 编译器无法将其视为 OC 头文件进行编译, 解决方案是在该文件头部添加 #import <Foundation/Foundation.h>, 如:

#import <Foundation/Foundation.h>
/*!
 头像显示的形状
 */
typedef NS_ENUM(NSInteger, RCUserAvatarStyle) {
    /*!
     矩形
     */
    RC_USER_AVATAR_RECTANGLE = 0,
    /*!
     圆形
     */
    RC_USER_AVATAR_CYCLE
};

demo:
SwiftUIDemo.zip (1.5 MB)