public string SomeString { get; set; }
要在iPhone上使用Objective-C实现相同的操作,需要声明一个本地变量来支持属性,编写属性声明,然后使用“synthesize”指令使属性为您生成(根据您指定的属性属性,您可能会具有包装获取器和设置器的属性,这些属性将为您处理引用计数 - 总体而言,这是一个时间节省者,但C#方法在这里是明显的赢家)。MonoTouch可以使您的生活更轻松,尤其是如果您习惯于不需要涉及内存管理的.NET/Java/Python/其他语言。Titanium则不同,因为它正在尝试创建一个抽象层,让您为多个平台编写相同的应用程序,因此您将处理通常的缺点:完全不同的API,灵活性降低等。无论您选择哪种开发工具,您最终都必须学习一些关于CocoaTouch的知识。我仍强烈建议开发人员至少使用原生工具通过几个基本的iPhone应用程序。这将使您成为该平台的更好开发人员。如果你喜欢并且比 Objective-C 更擅长 C#,那就毫无理由不选择 MonoTouch。
除非那些人亲自使用过他们所谈论的技术,否则不要听信那些唱衰者的话。例如,我了解 Titanium,但我没有实践经验- 我只是知道我不想用它,因为它与我的个人偏好不符。这并不意味着它“糟糕”- 它只是我生活中不想有的东西。
Objective-C 的开发者可以非常狂热。虽然其中有许多开放思维的开发者,但也有非常非常多的人认为 Objective-C、Cocoa 等等是开发界永远需要的最后一种工具。
别理会他们。
如果你担心支持问题,这里有一些需要考虑的事情:
Apple 很可能会保持更新,因为他们是制造这个垃圾的人。
MonoTouch 有可能会保持最新- Mono 团队已经在与 Microsoft 竞争方面做了出色的工作,我不认为他们不会同样对待 Apple。他们的表现令我惊叹。尽管 MonoTouch 只是发布了,就像五分钟前,但他们已经推出了 iPhone 3.1 版本的更新。他们非常认真地对待这个,我认为他们是神奇的。他们是开发世界里的小精灵。他们坐在自己的秘密层中,制造出每个人(好吧-不是每个人)都喜欢的东西,但其他人甚至都不敢尝试去做。
Titanium 要么成为一种笨拙的统一 API,用于编写多平台应用程序,完全是自己的东西;要么随着不同平台的功能分化,它会变得越来越分散。是啊,这是一堆典型的自命不凡的未来预测......我应该以“我认为......”作为这个项目符号的前缀。如果只有一种方法可以返回并更改它。
选择你喜欢的。MonoTouch 是 Apple 工具的“安全”替代品。我担心 Titanium 会走上相同的老路,即“糟糕”的高级平台抽象层技术,很多其他技术都走过这条路。但如果你正在做一些简单的事情,那么尝试一下也没有什么坏处,特别是在测试期间是免费的。
我创建了一个开源项目http://propertycross.com,旨在帮助开发者通过展示使用Sencha、Titanium、Xamarin等框架实现的相同应用程序来选择跨平台移动框架。该项目允许您轻松比较各种框架的终端用户体验、代码、IDE、开发者体验等方面...
我知道这是一个老话题,但为了保持时效性,看起来MonoTouch和其他跨平台框架将在SDK 4.0中被禁止使用。编写iPhone应用程序的唯一“安全”选择是使用XCode和Objective-C,至少目前是这样。
有许多方法可以进入设备。苹果已在SDK许可证中声明,通过C、C++、ObjectiveC和Javascript是唯一批准的进入设备的方式。
目前看来,使用MonoTouch和Appcelerator Titanium构建的应用程序被接受到App Store中。由于许可证的变更,这个问题引起了很多恐惧、不确定性和疑虑。苹果吓坏了所有不使用ObjectiveC的人。
我建议你作为开发者做出最明智的选择。如果你懂C#和.NET,你应该选择MonoTouch。如果你懂ObjectiveC或Mac平台,ObjectiveC可能是最好的选择。如果你懂X并且它在iPhone上,那么我建议首先看X。