2

我正在使用 Xcode 实现一个用于排序算法的静态 C++ 库。我想在我的 iPhone 应用程序中使用这个库(文件 .a)。当然,我必须为 C++ 和 C(文件 .mm)编写一个包装器。但是我的问题是我想在每个固定时间段后从这个库中收到通知。

例如,我正在实现“插入”算法,我希望该过程在 10 秒内发生,然后在每一秒之后,lib 将返回一个新的排序数组(当然它是不完整的),直到最后一个完整的排序数组。我怎样才能做到这一点?如何像这样从静态库 C++ 通知 Objective C?如果不使用静态库,我想问题不难,但我也想在 Java 中重用这个库。

4

1 回答 1

1

我有一个类似的项目,其中大部分逻辑都是作为 C++ 库实现的,它可以编译为静态库或动态库。我也有一个命令行 C++ 测试程序,所以我所有的回调,基本上相当于他们在选择取消的情况下已经走了多远,都被实现为简单的 C++ 回调:

extern "C"
{
/**
 * Callback function from long operations.
 *
 * @param gameNum The number of the game being processed (1-based).
 * @param percentComplete Processing progress. (0.0 to 100.0).
 * @param contextInfo Context Info passed to the database method.
 *
 * @return false to terminate processing, else true.
 */
typedef bool(*DATABASE_CALLBACK_FUNC)(unsigned gameNum, float percentComplete, void *contextInfo);
}

这在 C++ 命令行工具中与基于 Objective-C++ 的 Cocoa 应用程序同样有效。

请注意,我使用extern C它也可以从 C 中使用。

于 2013-05-16T01:20:05.800 回答