我在iOS應用程序上使用C++庫。其中一個功能爲我提供了一個包含C枚舉的std::vector
。我想在目標C(而不是對象C++)中使用這些數據,因此我需要將此數組轉換爲等效的Objective C數據結構。我使用的轉換C++到Objective C.如何將C++枚舉向量轉換爲等效的Objective C數組/向量?
我的代碼看起來有點像一個橋接類:
typedef enum
{
Error0 = 0,
Error1 = 1,
Error2 = 2
} MyError;
class ListenerImpl : public Listener
{
public:
ListenerImpl(Listener* listener) : _listener(listener) {}
void onError(std::vector<MyError> errors) override
{
// Calling Objective C listener (listener class should not be using Objective C++)
[_listener onError:convertToObjC(errors)];
}
void handleError(MyError error, int someExtraData) {
// Error values are returned back to C++ so if any mapping is to be used it needs to be bi-directional.
}
private:
// The question is how to implement this function and what is a good return value here.
ArrayRetValue convertToObjC(std::vector<MyError> & errors)
{
// Not sure how to accomplish this
}
__weak Listener* _listener;
}
我的問題是:在維護的方式如何實現這一點?
'ArrayRetValue'的接口是什麼? –
這是問題的一部分。我不確定什麼是合適的。 –