我正在构建一个应用程序,我想在 iOS 和 OSX 中重用 99% 的代码。只是要求进行健全性检查。
(编辑)关于我的项目的更多信息可能会影响一些响应:我的应用程序涉及一个可定制的演示文稿,主要用于 iOS 设备。OSX 组件实际上是可定制呈现的设计器 - 一种指定要在选定的 iOS 设备上呈现的内容的方法。也就是说,OSX 应用程序将是一个完全正常的 OSX 应用程序,它允许用户为 iOS 设备选择、配置和定位一些元素 - 并显示该演示文稿的预览。当然,我希望预览尽可能类似于 iOS 渲染(而不实际调用 iOS 模拟器,我不希望它在所有 OSX 设备上都可用)。因此,我将演示文稿设计为一个视图,应该在 OSX 和 iOS 上尽可能以几乎相同的方式呈现。
为此,我从 iOS 中开始使用一些简单的视图绘图内容,现在我正在重新配置代码以便可以将其移植到 OSX。到目前为止,我的策略是将所有对 UIView / UIWindow / UIFont / UIColor 等的引用替换为 _View / _Window / _Font / _Color 等。对于 iOS 版本,我将包含一个名为 Wrapper.h 的文件,如下所示:
#define _Device UIDevice
#define _Application UIApplication
#define _ApplicationMain UIApplicationMain
#define _ApplicationDelegate UIApplicationDelegate
#define _Responder UIResponder
#define _Window UIWindow
...使用基于 NS 的 OSX 定义(NSWindows 等)我知道一些细节会改变(比如视图中的 Y 坐标),但我可以处理。
我认为我不能像这样映射的唯一组件是手势识别器,因为 OSX 没有等效组件。我打算让它们成为在 iOS 包装器中实现的通用调用,并在 OSX 包装器中存根,因为我真的不需要 OSX 中的点击事件。
好主意?馊主意?有没有更好的方法来解决这个问题?谢谢...