我正在考虑如何最好地在新项目的团队之间分配工作量。我们有一个 Windows C# 应用程序服务团队和一个较小的 iOS Objective-C 团队。也可能迟早需要 Android 应用程序。
设备上调用我们的服务并处理与本地数据存储同步的域层/API 程序集是用 C# 编写并使用 MonoTouch 编译的逻辑组件。然后 Objective-C 团队引用这个组件。那可能吗?我已经阅读了大量有关 MonoTouch 引用 C 程序集的文章,但它可以反过来工作吗?
如果可能的话,如果有任何尝试这种方法的经验,那就太棒了!
谢谢 亚伦
最佳答案
虽然技术上可行,但目前还没有简单的方法。
目前您能做的最好的事情就是从 C# 启动应用程序,然后,如果您愿意,可以将控制权转移到您的 Objective-C 代码。在 C# 启动期间,您可以使用 P/Invoke 注册由 Objective-C 代码回调的方法,以调用如下内容:
delegate void some_callback_t (int parameter1, int parameter2);
[DllImport ("__Internal")]
void SetCallback (some_callback_t callback);
static void mycallback (int parameter1, int parameter2)
{
// Here goes your C# logic to be called by C
}
然后你调用:
SetCallback (mycallback);
请注意,mycallback 必须是静态方法(静态编译的限制)。然后,您的 Objective-C 代码可以通过实现类似以下内容来使用服务:
typedef (*callback_t) (int p1, int p2);
callback_t callback;
void SetCallback (callback_t cb)
{
callback = cb;
}
void InvokeCSharp ()
{
callback (1, 2);
}
关于ios - iOS XCode 应用程序可以引用 MonoTouch 程序集吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5256080/