iphone - 重写 iOS 应用程序以在 iOS 和 Mac 上运行 - 如何组织 Controller 代码?

标签 iphone macos ios portability viewcontroller

我有一个 iOS 应用程序,我正在重写该应用程序以在 Mac 和 iOS 上运行。我的观点相当有效,但目前一切都是静态的。

我通常如何处理我的 View Controller 代码?在仅限 iOS 的应用程序中,它通常是一堆内容,例如“如果用户触摸此处,则执行此操作。”

我找到了 hitTest: 方法。所以我很确定我可以写出所有内容,使其有效。我想我的问题更有组织性。理想情况下,我希望进行设置,以便当前位于 UIViewController 子类中的代码可以在两个平台上运行。

最佳答案

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

此时您真正想要做的是将所有网络、数学和逻辑代码放在外部类中。通常是 NSObject 的子类。然后,您所要做的就是编写在 View Controller 中调用这些类的代码。

不过,您将面临进一步的挑战 - 我认为您无法通过一个 bundle 在 iPhone 和 Mac 上运行应用程序。当您编译应用程序时,通常会编译到特定处理器。 Mac 运行在 Intel/PowerPC 上,iPhone 运行在 Arm 上。您将不得不无休止地摆弄构建目标等。

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

祝你编码愉快,

赞恩

关于iphone - 重写 iOS 应用程序以在 iOS 和 Mac 上运行 - 如何组织 Controller 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4771770/

相关文章:

iphone - 使用 Sprite Kit 粒子的 iOS 烟花爆炸

ios - 如何在mkmap的注释中添加图像

xcode - 如何使用 Three20 创建从网站目录提供数据的动态 TTThumbsViewController?

ios - 没有找到合适的申请记录。验证应用程序时 - 初学者

iphone - 如何显示不属于 UINavigationController 根目录的 UITabBar?

iphone - 我们怎样才能使 UITable 中的节标题可触摸?

iphone - 如何防止传递给 superview 的点击事件?

macos - 禁用 NSTask 截图声音

android - 尝试使用 adb 推送/安装 .apk 时出错

python - pip install FuzzySet 在 OSX 上失败 - virtualenv with python3