重写iOS应用程序以在iOS和Mac上工作 - 如何组织控制器代码?

Wil*_*sch 2 iphone macos portability viewcontroller ios

我有一个iOS应用程序,我正在重写在Mac和iOS上工作.我的观点运作得相当好,但目前一切都是静态的.

我通常使用视图控制器代码做什么?在仅限iOS的应用程序中,通常会出现一些内容,例如"如果用户触摸此处,请执行此操作".

我找到了hitTest:方法.所以我很确定我可以编写所有内容以便它可以工作.我想我的问题更具组织性.理想情况下,我想要进行设置,以便当前在UIViewController子类中的代码可以在两个平台上运行.

Aur*_*ila 5

您将无法使UIViewController代码在两个平台上都能正常工作.Mac没有UIKit,iPhone也没有AppKit.

此时您真正想要做的是在外部类中拥有所有网络,数学和逻辑代码.通常是NSObject的子类.然后,您所要做的就是编写在视图控制器中调用这些类的代码.

你将面临一个进一步的挑战 - 我不认为你可以从一个Bundle上在iPhone和Mac上运行应用程序.编译应用程序时,通常会编译为特定的处理器.Mac在Intel/PowerPC上运行,而iPhone则在Arm上运行.你将不得不无休止地摆弄构建目标等.

我建议维护两个单独的项目,并将上述逻辑类放在共享位置,并确保在导入它们时不要选择"复制到组目标文件夹"选项.这样,您对iPhone版本代码所做的任何编辑都会与Mac版本相对应,反之亦然.

快乐的编码,

赞恩