完整性检查:用于设计适用于iOS和OSX的视图的体系结构?

Dav*_*ein 1 macos objective-c sanity-check ios

我正在构建一个应用程序,我想在iOS和OSX中重用99%的代码.只是要求进行健全检查.

(编辑)有关我的项目的更多信息可能会影响某些响应:我的应用程序涉及可自定义的演示文稿,主要用于iOS设备.OSX组件实际上是可自定义演示的设计者 - 一种指定在所选iOS设备上显示内容的方式.也就是说,OSX应用程序将是一个完全正常的OSX应用程序,允许用户为iOS设备选择,配置和定位一些元素 - 并显示该演示文稿的预览.当然,我希望预览尽可能地与iOS渲染类似(没有实际调用iOS模拟器,我不希望在所有OSX设备上都可用).因此,我将该演示文稿设计为一个视图,应该在OSX和iOS上尽可能地尽可能地呈现.

为此,我开始在iOS中使用一些简单的视图绘图,现在我正在重新配置代码,以便将其移植到OSX.到目前为止,我的策略是用_View/_Window/_Font/_Color等替换对UIView/UIWindow/UIFont/UIColor等的所有引用.对于iOS版本,我将包含一个名为Wrapper.h的文件,如下所示:

#define _Device UIDevice
#define _Application UIApplication
#define _ApplicationMain UIApplicationMain
#define _ApplicationDelegate UIApplicationDelegate
#define _Responder UIResponder
#define _Window UIWindow
Run Code Online (Sandbox Code Playgroud)

...基于NS的OSX定义(NSWindows等)我知道一些细节会改变(比如视图中的Y坐标),但我可以解决这个问题.

我不认为我可以映射的唯一组件是手势识别器,因为OSX没有等效物.我打算让它们成为在iOS包装器中实现的通用调用,并在OSX包装器中删除,因为我真的不需要在OSX中使用tap事件.

好主意?馊主意?有没有更好的方法来解决这个问题?谢谢...

Cal*_*leb 5

到目前为止,我的策略是用_View/_Window/_Font/_Color等替换对UIView/UIWindow/UIFont/UIColor等的所有引用.

UIKit不只是AppKit,所有出现的"NS"都改为"UI".虽然存在很强的相似之处,但框架的工作方式和用户期望使用每个框架编写的软件的方式也存在重要差异.是否可以编写一个根据UIKit和AppKit实现的框架?毫无疑问,但你最终会遇到阻碍你充分利用这两个平台的东西.

好主意?馊主意?有没有更好的方法来解决这个问题?

IMO,坏主意.如果您在设计数据模型方面做得很好,您应该能够在Mac和iOS实现之间共享,而无需进行任何更改.然后,不是花费大量时间试图找出如何编写单个用户界面并提出双方都妥协的事情,而是将这些努力投入到创建在两个平台上引人注目的独立用户界面上.