我应该使用Mono + c#吗?还是学习并使用objective c更好?谢谢。
这可能会冒犯一些人,但老实说,如果你要进行任何严肃的开发,你应该学习Objective-C。在iPhone开发中不了解Objective-C只会成为一个障碍。你将无法理解许多示例;你必须处理Mono的怪癖,而如果你对Objective-C有工作知识,你可以从平台文档中获得更多的内容。
就我个人而言,我不理解那种认为增加所需信息量以支持使用Mono比使用平台的本地语言更好的立场。对我来说,这似乎有些适得其反。我认为,如果这是一个非常昂贵的建议(学习一门新语言),那么值得花些时间学习基本编程概念,以便于学习新语言变得相对便宜。
看一下MonoTouch。
现在使用Monotouch会更加容易,但以后会更加困难。
例如,当新的种子出现并需要进行测试时,如果由于某些原因破坏了MonoTouch,会发生什么情况?
通过坚持使用Mono,每次查找框架资源时,您都必须在头脑中将其转换为如何与Mono一起使用。您的应用程序二进制文件会更大,在几个月后进入Objective-C后,您的开发时间不会快多少,并且其他应用程序开发人员将因为他们正在使用本地平台而具有更大的优势。
另一个考虑因素是,您想使用C#,因为您比Objective-C更熟悉这种语言。但iPhone的学习曲线绝大部分不是Objective-C,而是框架-您还必须使用C#调用它们。
对于任何平台,您应该使用直接表达该平台设计哲学的平台-在iPhone上,这是Objective-C。从相反的角度考虑,如果一个习惯于使用GTK编程的Linux开发人员想要编写Windows应用程序,您会认真建议他们不要使用C#,而要坚持使用GTK,因为这对他们来说更“容易”吗?
这可能是一个有点主观的问题,但我的看法是你最好坚持使用C#。转换到Objective-C会增加你必须学习的新信息量,才能在你的环境中提高生产力。
即使坚持使用C#,你仍然需要...
然而,使用C#也有一些缺点
我的直觉是,与学习一门新语言的成本相比,这些缺点都是次要的。
编辑
我想澄清一下我对学习新语言的想法。我认为学习语言是有趣的,也是程序员生活中必不可少的一部分。你应该每年至少尝试一种新语言。今年我正在尝试F#。
唯一我不建议这个问题的原因是OP说“最简单的方法...”。学习一门新语言确实需要额外的时间和更多的努力,所以我认为坚持使用C#更容易。MonoTouch我认为是一个不错的选择,但请记住它仍处于初期阶段。我能够安装Mono开发工具并使MonoDevelop IDE正常运行,但目前这个IDE非常缓慢,几乎无法使用;至少在Mac OSX的Snow Leopard上运行如此。我进行了一些搜索,看起来这是一个已知的问题,但在MonoDevelop的最新版本中已经修复了。我认为Novell正在做正确的事情,但我也觉得在整个框架还处于早期阶段时,你将会与之斗争。
所以,归根结底,如果你想走C#/MonoTouch路线,请准备好投入大量的精力和时间去解决由于框架不稳定或不完整而产生的问题。我认为这对于任何新框架都是如此。