Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/37.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应用程序开发时,需要克服的最大障碍是什么?_Iphone_Ios_Macos_Ipad_Osx Lion - Fatal编程技术网

Iphone 从iOS应用程序开发转向Mac应用程序开发时,需要克服的最大障碍是什么?

Iphone 从iOS应用程序开发转向Mac应用程序开发时,需要克服的最大障碍是什么?,iphone,ios,macos,ipad,osx-lion,Iphone,Ios,Macos,Ipad,Osx Lion,据说Mac应用程序开发与iOS应用程序开发非常相似,但当然也有很大的不同 当我们抛开硬件和屏幕限制的所有事实不谈时,体验iOS应用程序开发人员必须克服的最大障碍是什么 我听到的一些可怕的事情: 误解1:在Mac上,坐标系是不同的。0位于左下角。感觉就像在街的另一边开车 误解2:NSView与UIView并不完全相同。UIView总是有一个CALayer。NSView没有 谬论3:Mac上的表视图比iOS上的UITableView复杂得多,也更难使用 有人可以揭穿他们,或添加一些其他?API之间的

据说Mac应用程序开发与iOS应用程序开发非常相似,但当然也有很大的不同

当我们抛开硬件和屏幕限制的所有事实不谈时,体验iOS应用程序开发人员必须克服的最大障碍是什么

我听到的一些可怕的事情:

误解1:在Mac上,坐标系是不同的。0位于左下角。感觉就像在街的另一边开车

误解2:NSView与UIView并不完全相同。UIView总是有一个CALayer。NSView没有

谬论3:Mac上的表视图比iOS上的UITableView复杂得多,也更难使用


有人可以揭穿他们,或添加一些其他?API之间的痛苦差异在哪里?

1和2是绝对正确的。3是有争议的-关于NStableView的一些内容更好,例如如何使用任何对象(例如字符串、图像、数字)作为单元格值

虽然我们讨论的是单元,但这是另一个难题-许多NSView都有单元属性来完成实际工作,因此视图层次结构由单元层次结构镜像,使一切都变得更加复杂。因此,文本字段非常混乱

此外,与UILabels/UIButtons相比,NSLabels/NSButtons几乎不能做任何事情-没有字体设置,没有颜色设置,根本没有定制-它们基本上是无用的

如果你确实使用核心动画,它与视图的集成度很差。例如,如果NSView由CALayer支持,您可以在3D中对其进行变换,就像在UIKit中一样,但如果您尝试单击它,鼠标坐标不会通过与视图外观相同的变换进行映射,所以,若你们变换一个控件,它基本上是不可点击的,除非你们在变换它之前点击它最初在屏幕上的位置

基本上,整个Mac OS SDK感觉像是iOS SDK的早期阿尔法版本,没有经过适当测试,一些愚蠢的、过于复杂的想法(单元)还没有投入生产


难道没有让Mac应用程序开发像iOS应用程序开发那样简单的框架吗?我相信我已经听说Loren Brichter的Twitter for Mac应用程序使用了这样一个框架来克服所有这些痛苦。是的,有一个叫做Chameleon的开源库,可以让你在Mac OS上运行UIKit代码。但是,您不能使用Nib文件进行布局,而且还有大量的bug和未完成的功能,所以“克服所有这些痛苦”是有争议的。