我有一个用C ++编码的静态库,我也有一些标题可以让库的用户创建这些类的实例。
当我创建一些Objective-C包装器来使用库时,我创建了桥文件,这些文件在" swift side"中被曝光良好。
我的问题是我还有C ++类,这些类是C ++库所使用的侦听器(这些类具有纯虚方法)。我想在Swift中使用这些Listeners类(或协议)(强制用户实现纯虚方法)并将它们传递给C ++库。
例如,我有一个使用Listeners的类:
#ifndef FUNCTION_EXECUTOR_H
#define FUNCTION_EXECUTOR_H
#include "ResultListener.h"
namespace test {
class FunctionExecutor {
public:
// Method that consumes the listener
void setListener(ResultListener* listener);
private:
ResultListener* _listener;
};
}
#endif
听众:
#ifndef RESULT_LISTENER_H
#define RESULT_LISTENER_H
namespace test {
class ResultListener {
public:
virtual void listenResult(int result) = 0;
};
}
#endif
是否有一种有效的方式来揭露"倾听者" class并让用户使用swift强制使用纯虚方法来创建该类的实现?