Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 什么';对于iOS和Mac OS X来说,什么是合适的跨平台方法?_Iphone_Cocoa_Cocoa Touch_Macos - Fatal编程技术网

Iphone 什么';对于iOS和Mac OS X来说,什么是合适的跨平台方法?

Iphone 什么';对于iOS和Mac OS X来说,什么是合适的跨平台方法?,iphone,cocoa,cocoa-touch,macos,Iphone,Cocoa,Cocoa Touch,Macos,对于设备的跨平台框架(iPhone+Android)和台式机的跨平台框架(Mac+Win+Linux),似乎有很多答案。关于开发在设备操作系统和桌面操作系统之间可跨平台移植的本机应用程序(不仅仅是web应用程序)的合适框架、方法、模板应用程序、教程或只是有用的提示,这是一个不同的问题 我想写一个既能在iPhone(或iPad)上运行,又能在Mac OS X上本机运行(而不仅仅是在模拟器中运行)的应用程序。我愿意只使用两种平台通用的基本UI元素(只有一个窗口、通用按钮、文本字段等) 构建一对应用程

对于设备的跨平台框架(iPhone+Android)和台式机的跨平台框架(Mac+Win+Linux),似乎有很多答案。关于开发在设备操作系统和桌面操作系统之间可跨平台移植的本机应用程序(不仅仅是web应用程序)的合适框架、方法、模板应用程序、教程或只是有用的提示,这是一个不同的问题

我想写一个既能在iPhone(或iPad)上运行,又能在Mac OS X上本机运行(而不仅仅是在模拟器中运行)的应用程序。我愿意只使用两种平台通用的基本UI元素(只有一个窗口、通用按钮、文本字段等)


构建一对应用程序的最佳方法是什么?在iPhone和MacBook上运行的“ifdef”和其他特定于平台的代码重写次数最少?

使用标准的UI控件很难做到这一点。AppKit和UIKit是完全不同的动物。即使是基本的UIView和NSView在结构和功能上也有很大的不同。在这个层次上,您将看不到任何可以跨平台制作的东西

然而,有一些显示元素可以在Mac和iOS上使用,只需很少的更改。核心动画Calayer就是这样一个元素,因为它们在MacOSX和iOS上是相同的。这就是为什么我们选择使用它们作为框架的基础,框架使用几乎相同的代码基在Mac和iOS上显示图形。有一些特定于平台的东西需要调整(比如UIView应用于其背景层的反转坐标系),但大多数代码将转换为两个平台

你提到写游戏。如果您使用OpenGL ES进行此操作,那么您编写的大部分渲染代码也将在Mac上工作。您需要更改一些内容,但在大多数情况下,OpenGL ES是桌面OpenGL的一个子集。然而,对于一个简单的二维游戏,我建议你坚持使用核心动画,除非你真的遇到了障碍,从性能上来说,仅仅因为你将编写更少的代码

到目前为止,我提到的项目都在模型-视图-控制器设计模式的视图部分。您的控制器代码将是特定于应用程序的,但您可能能够使大部分平台独立。如果您使用一个简单的模型,甚至是一个依赖SQLite或核心数据进行持久化的模型,那么使用相同的代码在Mac和iOS上工作应该是微不足道的


Mac应用程序和iOS应用程序(即使在不同的iOS设备之间)的核心设计也会非常不同。你不能把东西从一个平台塞进另一个平台。游戏可能比其他任何东西都更具便携性,但您仍需要进行一些定制工作,以反映每个计算设备的独特属性。

我也在努力解决这个问题;我使用的是Unity3D,免费许可证不允许本机OS X插件

我刚刚花了最后一个小时通读了一遍

雷做了一个超级演示,你可以下载他30页的电子书文档!他还提供了一个模板项目

我想我可以使用这个设置来创建一个单独的绘图表面(因此,两个平台上都有一个窗口),我可以使用SpriteKit来绘制它

然后包装鼠标/触摸输入以创建统一的输入

至于现成的框架,看起来很有趣

看起来更有趣:多平台Python包装GLES2


你最后选择了什么?

我有一个简单的游戏,我正在为我的iPhone编写。我希望能够在我的Mac上玩它,而不用启动SDK模拟器。我知道标准UI和NS控件是不同的。我想知道的是,是否有人为两者都做了某种抽象层,以允许不需要完全重写UI的东西。使用核心图形的视图渲染功能只需要一个用于翻转y轴坐标的宏。应该可以在iOS和MacOS之间使用比创建linux/Windows跨平台应用程序更轻量级的东西来实现这一点。人们希望。。。